sentinel
通信连接
- 与主、从节点建立命令、订阅连接
- 与其他sentinel建立命令连接
工作方式概述
- 主观下线:sentinel节点认为下线
- 客观下线:超过半数的sentinel节点认为下线
- sentinel每10秒向主、从节点发送一次info命令
1. 获取所有从节点信息,并且与从节点建立两个连接
2. 当主节点下线或者正在进行故障转移时,将每秒向从节点发送info - sentinel之间通过向被监视节点的订阅频道发送消息,让其他sentinel感知到自己的存在,每2秒一次
- sentinel从订阅频道中获取消息,与其他sentinel节点建立命令连接
- sentinel每1秒向其他节点发送PING命令,当某个节点在指定时间内未返回有效回复时,标识该节点为主观下线
- 当判定某个节点为主观下线时,向其他sentinel节点询问该节点是否已经是主观下线状态
- 当超过半数的sentinel节点任务改节点主观下线时,判定改节点为客观下线
- sentinel选举主节点
- 对故障主节点进行下线
- 从当前从节点中选取新的主节点(最近活跃、数据完整度高、优先级高、runid小)
- 通知其他从节点从新的主节点复制数据
- 将后续上线的主节点设置为从节点