redis sentinel 选举流程
2019-07-12 18:59:05 20 举报
redis sentinel故障转移时选举leader sentinel流程
作者其他创作
大纲/内容
已投票信息
此sentinel当选leader
其他sentinel 开始投票每人只投一票
1.更新故障转移状态(SENTINEL_FAILOVER_STATE_WAIT_START)2.更新主服务器状态(SRI_FAILOVER_IN_PROGRESS)3.更新纪元(epoch + 1)
遍历sentinel列表并异步发送 SENTINEL is-master-down-by-addr
是
统计投票人数
是否存在
定时任务
否
此sentinel为其投一票
接收回复
计算票数是否满足选举条件
将最新epoch内的投票信息返回
票数统计
当前sentinel变成candidate
sentinelHandleRedisInstance()
是否超时
结束本轮选举
选举成功
统计其他sentinel中得票最多的
已投票和拉票人epoch是否相同
此sentinel为自己投一票
master节点已主观下线
结束
是否开启故障转移sentinelStartFailoverIfNeeded
执行后续故障迁移
1 master已确认为ODOWN 状态2 没有正在执行的master故障转移操作3 最近时间内,没有尝试过执行故障转移
max_votes >= sentienl/2+1 && max_votes >= quorum
是否投过票
记录返回结果
0 条评论
下一页