首页 > 编程知识 正文

redis哨兵之间怎么通信,redis哨兵启动和关闭

时间:2023-05-03 20:32:22 阅读:159275 作者:3577

如果redis群集的主节点出现故障,Sentinel群集将从其馀的从节点中选择新的主节点。 步骤如下。

故障节点主观下划线故障节点客观下划线Sentinel集群选举LeaderSentinel Leader是新主节点选举流程1、主观下划线Sentinel集群的每个Sentinel节点对redis集群的所有节点定期进行硬件如果节点在down-after-milliseconds时间内未响应Sentinel节点的心跳,则redis节点将被Sentinel节点主观下划线。

2、如果客观下划线节点由一个sentine节点表示为主下划线,并不意味着该节点发生了故障,需要sentine集群的其他sentine节点共同判断为主下划线。

此Sentinel节点查询其他Sentinel节点,如果Sentinel群集中的Sentinel节点认为此redis节点主观上是脱机的,则redis在客观上是脱机的。

如果客观加下划线的redis节点是从节点或Sentinel节点,则操作到此为止,无后续操作; 如果客观上脱机的redis节点是主节点,请启动故障转移,然后从节点中选择节点并升级到主节点。

3、Sentinel集群选举需要从LeaderRedis集群中选出节点主节点时,首先需要从Sentinel集群中选出Sentinel节点作为leader。

每个Sentinel节点可以是Leader,一个Sentinel节点检查redis群集主节点的主下划线后,请求其他Sentinel节点将自己选为Leader。 如果请求的Sentinel节点从未同意其他Sentinel节点的选举请求,则它同意该请求。 否则,我不同意。

如果某个Sentinel节点达到Leader的最低投票数(quorum和Sentinel节点数/2 1的最大值),则该Sentinel节点将被选为Leader。 否则就重新选举。

4、Sentinel Leader决定新的主节点在Sentinel集群选出Sentinel Leader后,Sentinel Leader从redis中选择一个节点作为主节点

过滤失败的节点选择优先级为slave-priority最大的从节点作为主节点,如果不存在,则选择复制偏移(继续选择数据写入量的字节,记录写入了多少数据)。 主服务器将偏移量与从服务器同步,如果主从的偏移量一致,则数据完全同步)以最大的从节点为主节点,不存在的情况下生成runid (每次redis启动时生成随机的runid,生成redis的为什么Sentinel簇中至少3个节点的1个Sentinel节选举会成为Leader,最低投票数是quorum和Sentinel节点数/2的最大值。 如果Sentinel群集只有2个

Sentinel节点数/2 1=2/2 1=2即Leader的最低投票数至少为2。 在此Sentinel群集中有一个Sentinel节点发生故障后,另一个Sentinel节点将永远无法成为Leader。

根据该式也可以导出Sentinel簇为了容许一个Sentinel节点故障而需要3个节点的簇; 需要五个节点群集来允许两个节点故障。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。