zoukankan      html  css  js  c++  java
  • Redis入门到精通(二十)——哨兵概念、配置哨兵、哨兵工作原理(监控阶段、通知阶段、故障转移阶段)

    哨兵概念

    哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master

    哨兵作用

    监控
    不断的检查master和slave是否正常运行
    master存活检测、master与slave运行情况检测
    
    通知(提醒)
    当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知
    
    自动故障转移
    断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服务器地址
    
    注意:哨兵也是一台redis服务器,只是不提供数据服务,通常哨兵配置数量为单数

    一、配置哨兵

    配置一主两从的结构
    配置三个哨兵(配置相同,端口不同)   参看sentinel.conf
    启动哨兵
    redis-sentinel sentinel-端口号.conf

    二、哨兵工作原理

    1.阶段一:监控阶段

     监控步骤

    先启动主从服务器在启动哨兵
    1.启动哨兵,连接上master之后发送info指令,获取master的信息
    2.哨兵和master之间建立cmd连接方便发送指令,同时在哨兵端保存了所有信息包括master/slaves/sentinels,在master端也保存了所有信息包括master/slaves/sentinels
    3.哨兵根据获得的slave信息去连接每一个slave,发送info指令获取slave详细信息
    4.启动第二个哨兵也会自动去连接master,发送info指令,会发现master已经和其他哨兵连接过同时建立cmd连接,此时哨兵端保存信息包括master/slave/sentinels(包括之前连接的哨兵),两个哨兵之间也会建立连接。
    5.当第三个哨兵启动的时候,也会进行之前的操作

    2.阶段二:通知阶段

    3.阶段三:故障转移阶段

    故障转移流程

    1.其中一个sentinel向master发送信息,一段时间内master没有回应,标记状态SRI_S_DOWN(主观下线)
    2.sentinel在自己内网中告诉其他哨兵,master挂了。其他哨兵也去连接master,半数以上的哨兵发现master挂了,那就是真的挂了,状态改成SRI_O_DOWN(客观下线)
    3.所有的哨兵推选出一个哨兵领导,哨兵根据自己的原则从所有的slave中挑选出新的master,其他slave切换新的master,故障恢复后原master作为slave

    哨兵挑选新的master原则

  • 相关阅读:
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    非数值数据的编码方式
    定点数
    C语言||作业01
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
  • 原文地址:https://www.cnblogs.com/wangcuican/p/12921746.html
Copyright © 2011-2022 走看看