故障转移
- 由领导者完成;
故障转移过程
- 从 slave 节点中选出一个“合适”的节点作为新的 master 节点;
- 对上面的 slave 节点执行 slaveof no one 命令让其成为 master 节点;
- 向剩余的 slave 节点发送命令,让它们成为新 master 节点的 slave 节点,复制规则和
parallel-sync
参数有关; - 将原来的 master 节点设置为 slave,并保持对其关注,当其恢复后命令它去复制新的 master;
选择合适的 slave 节点
- 选择 slave-priority 最高的节点,如果存在则返回,不存在则继续;
- 选择复制偏移量最大的节点(复制的最完整),如果存在则返回,不存在则继续;
- 选择 runid 最小的节点(最早启动);