Redis哨兵机制详解

哨兵机制是针对于Redis集群模式下对主从进行监控而存在的

哨兵机制会对Redis主从进行监控,当主节点故障下线时会从从节点中选出一个性能好的变成新主节点,并将IP地址和端口号发送给连接了旧主节点的客户端

哨兵机制在判断主节点是否故障下线时,为了减小误判的可能性,所以哨兵机制一般会部署为集群模式

一、监控主节点是否故障下线

如何判断主节点故障下线?

  1. 哨兵机制通过PING-PONG对节点状态进行判断,每隔一秒哨兵机制会给主节点发送PING命令,若参数 down-after-milliseconds 时间内还未收到主节点PONG命令回应则判断主节点主观下线
  2. 当一个哨兵判断主节点为主观下线后,会向其他哨兵发送确认命令,其他哨兵收到确认命令后会回复自身对于主节点是否下线的判断。若判断主节点下线的哨兵达到参数 quorum 值时,则判断该主节点为客观下线

由哪个哨兵选取新的主节点?

  1. 当某个哨兵判断主节点客观下线后,该哨兵会向其他哨兵发送确认命令,其他哨兵会对该哨兵进行选取新主节点进行是否同意判断。每个哨兵只能同意一个哨兵进行选取新主节点的操作,只有判断主节点客观下线的哨兵才能同意自己进行选取新主节点的操作,当某个哨兵:
    1. 得到哨兵集群半数以上的同意
    2. 拿到的同意数达到参数 quorum 值
  2. 当满足了以上两个条件时,就由该哨兵进行选取新的主节点操作

二、选取新主节点并替换旧主节点

选取新的主节点:

  1. 首先会过滤掉网络状态不好的节点
  2. 其次会选出相对优先级高,复制进度靠前,ID号小的节点作为主节点

然后将从节点指向新的主节点,将新的主节点的IP地址、端口号发送给客户端,最后将旧的主节点变成从节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis哨兵模式是一种高可用性方案,用于监控和管理Redis主从复制架构中的故障转移。在哨兵模式中,有一个或多个哨兵进程运行在不同的节点上,它们负责监控Redis实例的状态,并在主节点出现故障时自动将一个从节点升级为新的主节点。 以下是Redis哨兵模式的详细解释: 1. 哨兵的角色:哨兵进程是一个特殊的Redis实例,它通过向被监控的Redis实例发送命令来获取实例的状态信息。每个哨兵进程都会定期检查主节点和从节点的状态,并与其他哨兵进程进行通信以达成共识。 2. 监控主节点状态:哨兵进程通过向主节点发送PING命令来检测主节点是否存活。如果主节点未响应,哨兵会将该主节点标记为下线,并开始进行故障转移。 3. 选择新的主节点:当主节点下线时,哨兵进程会从当前还在运行的从节点中选出一个新的主节点。它会根据预定义的优先级、运行健康度和复制偏移量等因素来选择新的主节点。 4. 执行故障转移:一旦新的主节点被选出,哨兵进程会发送命令给其他从节点,将它们切换到新的主节点上。之后,哨兵会通知客户端新的主节点的地址,以便客户端能够重新连接到新的主节点。 5. 监控复制过程:哨兵进程会监控主从节点之间的复制状态。如果从节点未能及时同步主节点,哨兵会将该从节点标记为下线,并启动故障转移过程。 6. 自动化管理:哨兵模式具有自动化管理的特性。一旦配置好哨兵进程,它们将自动监控并管理Redis实例的状态,提供高可用性和故障转移能力。 总结起来,Redis哨兵模式通过监控和管理主从复制架构中的节点状态,实现了自动化的故障转移和高可用性。它是一种简单且可靠的方式来确保Redis实例的持续可用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值