美文网首页
Redis高可用之哨兵Sentinel

Redis高可用之哨兵Sentinel

作者: 0d3f575c8bef | 来源:发表于2020-04-12 10:15 被阅读0次

    Sentinel哨兵

    Redis主从复制模式下 如果主节点发生故障 服务便不可用  那么此时就需要人工去把其中一台从节点晋升为主节点 并通知应用方  ,无法保证高可用 所以Redis提供了Sentinel来做这件事情

    哨兵的具体作用就是 由多个哨兵节点组成的集群 他们会去监控所有redis数据节点,同时哨兵们彼此之前也会进行监控  ,当某个哨兵发现一个redis数据节点发生故障后, 会对其标识下线处理 

     如果这个数据节点是主节点master  那么这个哨兵就会与其它哨兵进行协商选出一台sentinel做为领导者去进行故障转移工作 

    具体的故障转移流程分四步:

    1.通过slave of noone 把一台redis从节点晋升为主节点

    2.让其它从节点 复制 新的主节点

    3.通知应用方

    4.让故障的主节点去复制新的主节点

    流程图如下

    这些步骤都是自动完成的  应用方初始化连接的时候连接是哨兵的地址,并从中获取redis的连接信息  实际上sentinel本身就是一个特殊的redis节点,只不过他并不存储数据,并且只接受一部份命令  

    Sentinel的安装及部署  

    上面说过Sentinel本身就是一个redis的节点 部署与redis没什么不同 ,只是启动配置里多了几条与sentinel相关的配置而以  这里不写了

    线上部署时的技巧 :

    Sentinel节点应该部署在不同的物理机上  防止因为单台物理机故障导致所有的Sentinel节点都不可用

    部署三个以上并且 是奇数个Sentinel节点  Sentinel领导者选举时需要一半个数+1个节点   同时三个以上节点 可以增加故障判断的准确性

    另外一组Sentinel节点可以监控多个redis主节点  如果多个redis主节点是属于同一业务

    那么配置一组Sentinel节点就可以 否则建议一组Sentinel监控一组Redis 防止因为Sentinel节点故障导致所有业务 都受影响

    相关文章

      网友评论

          本文标题:Redis高可用之哨兵Sentinel

          本文链接:https://www.haomeiwen.com/subject/aucvmhtx.html