redis学习(八)--- 哨兵

    哨兵是redis高可用性的解决方案,由一个或者多个哨兵实例组成的哨兵系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器处理命令。

哨兵的实现流程

  1.  哨兵集群通过配置发现maste,同时会监控master,同时以一定的频率向master发送INFO命令,获取主服务器的当前信息,包括master的本身信息,以及master所有的slave信息,因此无须用户提供slave的地址信息,就可以发现slave
  2. 哨兵向master和slave发送心跳,以此向其他哨兵宣告自己的存在
  3. 哨兵集群通过订阅接收其他哨兵的心跳,以此来发现监视同一个master的其他哨兵
  4. 哨兵集群使用ping命令检测实例的状态,如果在指定的时间内没有回复,那么会认为该实例是下线状态
  5. 当一个哨兵将一个master判断为下线(主观下线)之后,为了确认真的下线,会监视这个master的其他哨兵进行询问,看他们认为master是否下线,当有足够的哨兵认为master下线,那么认为master判断为下线(客观下线),同时选举出一个领头的哨兵,并对master进行故障转移
  6. 故障转移:
    1. 在已下线的master的slave中选择一个转换为新的master
    2. 让已下线的master下的所有的slave改为复制新的master
    3. 将已下线的master设为新的master的slave,当这个旧的master重新上线的时候,会成为新的master的slave

    备注:选择哪个slave作为新的master:首先会根据slaves的优先级来进行排序,优先级越小排名越靠前。如果优先级相同,则查看复制的下标,哪个从master接收的复制数据多,哪个就靠前。如果优先级和下标都相同,就选择进程ID较小的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值