Redis Cluster集群故障转移
1. 故障发现
1.1 主观下线,Redis集群通过Gossip的ping,pong消息来互相通信,比如A节点向B节点发送ping,如果在 cluster-node-timeout时间内一直失败,则节点A会认为B是主观下线,同时将此状态信息在集群内广播
1.2 客观下线,当半数以上的持有槽的主节点都标记B是主观下线时,触发客观下线流程。
1.2.1 通知集群内所有节点,标记B为客观下线并立刻生效
1.2.2 通知故障节点的从节点触发故障转移
2. 故障恢复
客观下线后,如果故障节点是持有槽的主节点,需要从它的从节点中选一个替换它,保证集群高可用。当从节点通过内部的定时任务发现主节点客观下线,将会触发故障恢复流程。
2.1 资格检查,从节点检查最后与主节点断线时间,如果超过一定时间(配置参数),则不具备资格。
2.2 准备选举时间,会让延迟最小的从节点优先发起选举。
2.3 发起选举
2.3.1 更新配置纪元(clusterNode.configEpoch),每个主节点维护一个配置纪元,主节点的配置纪元都不相同,从节点复制主节点的配置纪元,整个集群有维护以全局配置纪元用于记录所有的最大版本。从节点每次投票都会自增全局的配置纪元并单独保存,用于标示自己发起选举的版本
2.3.2 向集群发送消息,保证该从节点在一个配置纪元只发送一次消息
2.4 选举投票
只有持有槽的主节点才会处理故障选举,投票过程是领导者选举过程,每个配置纪元内每个节点只有一张选票,因此只能有一个从节点获得N/2+1的选票,当超过一定时间没有从节点选出会选举作废开始下一轮选举。
2.5 替换主节点
当从节点获取足够的票后,触发替换主节点,将当前节点变为主节点,讲主节点负责的槽委派给自己,然后广播自己的pong消息,通知所有节点自己变为主节点
- Hyper-V R2动手实验之故障转移集群攻略(转)
- mysql双机热备+heartbeat集群+自动故障转移
- SQL Server 2008故障转移集群+数据库镜像配置实例之三
- Redis Sentinel;Redis Sentinel配置;redis集群;redis故障转移
- Windows Server 2012 Hyper-V故障转移集群虚拟机亲和性策略 推荐
- Windows Server 2008 R2之高可用管理系列之(添加故障转移集群)
- 在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群 推荐
- 应用SQL Server 2008实现故障转移集群的六大优势
- SQL Server 2008故障转移集群+数据库镜像配置实例之三
- Redis Sentinel;Redis Sentinel配置;redis集群;redis故障转移[原创]
- 部署AlwaysOn第一步:搭建Windows服务器故障转移集群
- nginx集群使用session粘连Tomcat故障后的会话转移解决策略
- 微软SQL server故障转移集群搭建后,添加新磁盘
- 配置Windows Server2008故障转移集群 推荐
- 搭建elasticsearch集群及故障转移(3)
- SQL Server 2008故障转移集群概述
- 搭建故障转移集群网络环境
- SQL Server故障转移集群
- nginx+tomcat集群负载均衡下tomcat故障后的的会话转移
- sql server 复制,镜像,日志传输及故障转移集群区别