标签
SQL Server
Redis
MySQL
其它
Oracle
外部链接
redis cluster 分布式集群之六(集群的故障转移)

故障转移

1、故障发现

通过ping/pong消息实现故障发现:不需要sentinel

主观下线和客观下线

主观下线:某个节点认为另一个节点不可用“偏见”

主观下线流程

image.png

客观下线:当半数以上持有槽的主节点都标记某节点主观下线

客观下线的流程

image.png

尝试客观下线

image.png

通知集群内所有节点标记故障节点为客观下线

通知故障节点的从节点触发故障转移流程

2、故障恢复

2.1资格检查

->每个从节点检查与故障节点的断线时间

->超过cluster-node-timeout*cluster-slave-validity-factor取消资格

->cluster-slave-validity-factor默认是10

2.2准备选举时间

image.png

这个流程的意思就是让偏移量(offset)最大的优先参加选举,所以延迟的时间给的最短

2.3选举投票

image.png

因为偏移量越大延迟选举的时间就越短,这样它就比其它的节点获取到了更多的投票,因为它优先进入了选举这个步骤了。

2.4替换主节点

->当前从节点取消复制变为主节点(slaveof no one)

->执行clusterDelSlot撤销故障节点负责的槽,并执行clusterAddSlot把这些槽分配给自己

->向集群广播自己的pong消息,表明已经替换了故障从节点

扫一扫手机看
点击排行
订阅号
...