文章目录
- 1. 主从复制哨兵架构图
- 2. 定时任务
- 3. 主观下线
- 4. 客观下线
- 5. 仲裁
- 6. 哨兵工作原理
1. 主从复制哨兵架构图
2. 定时任务
Sentinel内部有3个定时任务分别是:
- 每1秒每个Sentinel对其他Sentienl和Redis节点执行 PING 操作(监控)
- 每2秒每个Sentinel通过Master节点的channel交换信息(Publish/Subscribe)
- 每10秒每个Sentinel会对Master和Slave执行 INFO 命令
3. 主观下线
所谓主观下线,(简称SDOWN)指的是单个Sentinel实例对服务器做出下线的判断,即单个Sentinel认为某个服务下线(有可能是接收不到订阅,之间的网络不通等等原因)
4. 客观下线
(简称ODOWN)指的是多个Sentinel实例在对同一个服务器做出SDOWN判断,并且通过命令相互交流之后,得出的服务器下线判断,然后开启faliover。
5. 仲裁
指的是配置文件中的quorum选项
quorum的值一般设置Sentinel个数的二分之一加1,例如3个Sentinel就设置为2.
6. 哨兵工作原理
- 1.每秒PING
- 2.有效回复PING 命令时间超时配置文件
down-after-milliseconds
选项所指定的值,被认定主观下线。 - 3.确认主观下线状态
- 满足条件,客观下线
- 5.投票选举主节点,从节点复制数据
- 6.当主节点编辑为客观下线,INFO命令触发由10s依次调整为1s一次。
- 7.若没有足够数量的Sentinel同意Master已经下线,Master的客观下线状态就会被移除。若Master重定向Sentinel的PING命令返回有效回复,Master的主观下线状态就会移除。