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上同步数据。

步骤三:通知客户端主节点已经切换

哨兵会向客户端发送通知,告诉客户端主节点已经切换

步骤四:将旧节点切换为从节点

总结