深入剖析Redis高可用之Sentinal(哨兵)原理

生产环境中,对于任何的软件系统或者其组件,都需要保证其高可用性。

引入Redis做缓存系统,首先通过主从架构,可以解决系统的并发瓶颈。一般情况下,在任何一个Redis集群中,最最经典的用法都是一主多从的架构,主节点负责接收写请求,从节点接收读请求,即缓存的读写分离架构。

深入剖析Redis高可用之Sentinal(哨兵)原理
  • 主节点宕机后,哨兵会感知到主节点宕机,但是哨兵集群中每一个节点,如果低于quorum数量的哨兵感知到主节点宕机,并不会马上开始选主,而是会将感知到的主节点宕机的消息通知给其他哨兵节点,这个阶段叫做sdown是主观宕机。

    深入剖析Redis高可用之Sentinal(哨兵)原理
    master节点被认为odown了,而且majority个哨兵都允许了主备切换,那么哨兵节点中就会选举出一个节点(Leader)来执行主备切换操作,哨兵Leader选举采用的是Raft算法,大致流程为:
  • 每个在线的哨兵,都有可能成为Leader,它(如下图Sentinal Node 1)确认主节点下线时,会向集群中其他哨兵发送一个is-master-down-by-addr命令,征求其他哨兵节点的判断并要求自己成为Leader。

  • 当其他哨兵收到命令时,可以同意或者拒绝他成为Leader。

  • 当节点Sentinal Node 1发现,集群中超过半数节点回复同意它成为Leader时,那么该节点就会成为Leader。如果没有超过,则再进行新一轮的投票。

深入剖析Redis高可用之Sentinal(哨兵)原理

备注:学习总结,如有错误,望同行指正,谢谢。

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8582 人正在系统学习中

来源:RonTech

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月15日
下一篇 2020年10月16日

相关推荐