开发者学堂课程【Redis 入门到精通(进阶篇):哨兵-工作原理(3)】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/765/detail/13465
哨兵-工作原理(3)
内容介绍
一、阶段三:故障转移阶段
二、总结
一、阶段三:故障转移阶段
1. 首先 sentinel 向 master 发送 hello 指令,但 master 并没有回应,多次没有回应之后 sentinel 会将 master 标记为 SRI_S_DOWN(主管下线) 的状态。在标记状态后 sentinel 会在内网中发送一条指令来传递 master 的状态。如果 sentinel 断连他也会标记状态,但传递状态的指令无法发送到内网。
2. 在其他 sentinel 接收到故障命令后他们也会向 master 发送 hello 命令如果半数以上的 sentinel 没有得到会应就会将 master 的标记改为 SRI_O_DOWN(客观下线) 。
3. 在 master 被标记为客观下线后开始进入下一环节。首先所有的 sentinel 会发送自己的信息通过多次投票的方式来确定哪一个 sentinel 来清除下线的master。
4. 被选出的 sentinel 来处理下线 master 。他会以在线的、响应快的、与原 master 断开时间久的、优先级、偏移量等原则从多个备选的 slave 中选出一个 slave 来代替 master。
5. 在选定 slave 后 sentinel 会向新的 master 发送 slave of no one 来让slave成为新的master,并向其他 slave 发送 slave of 新master IP端口来通知其他 slave 连接新的 master。
二、总结
第一阶段:监控
同步信息
第二阶段:保持联络
保持联络
第三阶段:故障转移
发现问题
竞选负责人
优选新 master
新 master上任,其他 slave 切换 master,原 master 作为 slave故障恢复后连接。