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原则

  • 相关阅读:
    Leetcode 15 3Sum
    Leetcode 383 Ransom Note
    用i个点组成高度为不超过j的二叉树的数量。
    配对问题 小于10 1.3.5
    字符矩阵的旋转 镜面对称 1.2.2
    字符串统计 连续的某个字符的数量 1.1.4
    USACO twofive 没理解
    1002 All Roads Lead to Rome
    USACO 5.5.1 求矩形并的周长
    USACO 5.5.2 字符串的最小表示法
  • 原文地址:https://www.cnblogs.com/wangcuican/p/12921746.html
Copyright © 2011-2022 走看看