Redis哨兵机制
文章目录
- 什么是哨兵机制
- 如何判断主节点真的故障了?
- 由哪个哨兵进行主从故障转移?
- 主从故障转移是怎么进行的?
- 步骤一:选新节点
- 步骤二:切换主从节点
- 步骤三:通知客户端主节点已经切换
- 步骤四:将旧节点切换为从节点
- 总结
什么是哨兵机制
当我们的主服务器挂了,那么该怎么办呢?这时候就用到了哨兵机制,他负责监控主服务器,当主节点挂了的时候,他就会在从节点里选择一个作为新的主节点,并将旧的主节点变为从节点
如何判断主节点真的故障了?
哨兵会每隔一秒向主节点发送一个ping 命令,当发送间隔很久都没有收到回复,判断该主节点为主观故障。当哨兵集群判断主节点为主观故障的哨兵数量超过配置文件里quorum配置项,那么就认为主节点是客观故障。
由哪个哨兵进行主从故障转移?
哪个哨兵节点判断主节点为客观故障,就由哪个哨兵节点作为候选者。
主从故障转移是怎么进行的?
四步:
第一步:选出新节点
第二步:将旧的主节点的从节点复制目标转换成新的主节点
第三步:将新的主节点的IP通知给客户端
第四步:继续监视旧的主节点,当其上线时把他转换成新主节点的从节点
步骤一:选新节点
- 首先会判断节点与主节点断开的时间,如果超过了设置的默认值,则排除该节点
- 然后判断它的slave-priority值,值越小,优先级越高
- 接着判断哪个节点复制得多,即看他们的offset值,越大优先级越高
- 如果slave-priority值和offset值相同,则选从节点ID小的那个
步骤二:切换主从节点
- sentinel给备选的slave1节点发送slaveof no one命令,让该节点成为master
- sentinel给所有其它slave发送slaveof 192.168.111.100 7002 命令,让这些slave成为新master的从节点,开始从新的master上同步数据。
步骤三:通知客户端主节点已经切换
哨兵会向客户端发送通知,告诉客户端主节点已经切换