高可用可以分为单机级、机柜级、机房级、数据中心级、城市级等很多不同的层级。
无论是哪一种层级,都需要分布式数据库的多副本机制和一致性协议来保证。简单来说,分布式数据库故障时,一致性协议可以重新选举leader,在保证大多数副本正常的情况下,确保业务不受影响,数据库不停服务。
分布式数据库实现自动故障转移,自动恢复 ,需要对数据库指标进行实时监控,使用自动化脚本对数据库进行智能调优,智能化恢复,实现自主自治的智能化数据库,这也是目前分布式数据库的一大技术热点。市场上的很多分布式数据解决方案都在增强这一特性
收起分布式库的组件较多,大致可分为数据节点、计算节点、控制节点三类角色。其中,计算节点一般为无状态的,故障后可切换自动恢复;控制节点一般采用自身高可用保障,出现问题是会主动自愈;数据节点出现问题时较为重要,因为其上面承载的数据。我理解问题主要是对应这一角色。针对数据节点,不同分布式数据库产品,底层实现有所差异,大致可分为两种情况: