来源:黄健宏
浏览 357
扫码
分享
2020-01-01 20:30:30
重点回顾
- Sentinel 只是一个运行在特殊模式下的 Redis 服务器,它使用了和普通模式不同的命令表,所以 Sentinel 模式能够使用的命令和普通 Redis 服务器能够使用的命令不同。
- Sentinel 会读入用户指定的配置文件,为每个要被监视的主服务器创建相应的实例结构,并创建连向主服务器的命令连接和订阅连接,其中命令连接用于向主服务器发送命令请求,而订阅连接则用于接收指定频道的消息。
- Sentinel 通过向主服务器发送 INFO 命令来获得主服务器属下所有从服务器的地址信息,并为这些从服务器创建相应的实例结构,以及连向这些从服务器的命令连接和订阅连接。
- 在一般情况下,Sentinel 以每十秒一次的频率向被监视的主服务器和从服务器发送 INFO 命令,当主服务器处于下线状态,或者 Sentinel 正在对主服务器进行故障转移操作时,Sentinel 向从服务器发送 INFO 命令的频率会改为每秒一次。
- 对于监视同一个主服务器和从服务器的多个 Sentinel 来说,它们会以每两秒一次的频率,通过向被监视服务器的
sentinel:hello
频道发送消息来向其他 Sentinel 宣告自己的存在。 - 每个 Sentinel 也会从
sentinel:hello
频道中接收其他 Sentinel 发来的信息,并根据这些信息为其他 Sentinel 创建相应的实例结构,以及命令连接。 - Sentinel 只会与主服务器和从服务器创建命令连接和订阅连接,Sentinel 与 Sentinel 之间则只创建命令连接。
- Sentinel 以每秒一次的频率向实例(包括主服务器、从服务器、其他 Sentinel)发送 PING 命令,并根据实例对 PING 命令的回复来判断实例是否在线:当一个实例在指定的时长中连续向 Sentinel 发送无效回复时,Sentinel 会将这个实例判断为主观下线。
- 当 Sentinel 将一个主服务器判断为主观下线时,它会向同样监视这个主服务器的其他 Sentinel 进行询问,看它们是否同意这个主服务器已经进入主观下线状态。
- 当 Sentinel 收集到足够多的主观下线投票之后,它会将主服务器判断为客观下线,并发起一次针对主服务器的故障转移操作。
当前内容版权归
黄健宏 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问
黄健宏 .