Redis 哨兵

当主从集群下Master当宕机,Redis 的哨兵机制(Sentinel)会从Slave节点中选举一个新的Master

主要功能如下

(1)集群监控,负责监控redis master和slave是否正常工作

(2)故障转移,如果master node挂掉了,自动故障转移,从Slave节点中选举一个新的Master

(3)消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员

如果故障转移发生了,通知client客户端新的master地址

总结:Redis哨兵用来监控主从集群,当Master宕机时,从Slave中选举新的Master

1. 集群监控

哨兵是基于心跳机制监控集群状态,每秒向集群中的实例发送ping命令

  • 如果某个哨兵节点发现某实例没在规定时间(down-after-milliseconds 配置)响应,
    则该实例:主观宕机(sdown)

  • 如果指定数量(quorum)的哨兵都认为这个实例宕机,则该实例:客观宕机(odown),quorum最好超过一半数量

上图中,一同有3个哨兵,其中2个都认为master宕机了,且quorum=2,那么这个master就是客观宕机,需要进行故障转移

2. 故障转移

一旦认为Master客观宕机,哨兵会在slave中选出一个最为新的Master,选举算法

  • 判断跟Master断开连接的时长,超过了down-after-milliseconds的10倍,排除这个slave

  • 判断salve的优先级replica-priority属性(老版本是slave-priority)越低,优先级就越高

  • 如果replica-priority相同,那么看replication offset,offset越大,优先级就越高

  • offset越大:数据越完整

  • 如果上面两个条件都相同,那么选择一个 run id 比较小的

  • runid是启动redis时生成的,通过 info server 命令可以查看runid

一旦确定Master节点后,会选择一个哨兵节点,进行故障转移

  • 给备选的slave发送 slave no none 命令,让该节点成为Master

  • 给其他slave节点发送 REPLICAOF(老版本是:slaveof) <master IP> <master port> 命令,让这些slave成为新Master的从节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值