zoukankan      html  css  js  c++  java
  • Redis--哨兵

    Sentinel 哨兵 —— 高可用 (high availability)

       监视集群,主服务器的选举。

    主服务器的下线判断:

      1、在down-after-milliseconds选项设置的时间内,连续向Sentinel返回无效回复。

      2、询问其它监视主服务器的Sentinel也得到主服务器下线的回应。

      注意点:如何正确的判断主服务器是否下线。

    领头Sentinel的选举:(当主服务器被判断为下线时,监视该集群的Sentinel就进行领头的选举)

      1、所有在线的Sentinel都有被选举为领头的资格。

      2、每次选举后,Sentinel的配置纪元自增1。(configuration epoch,类似计数器的作用)

      3、同一个批次的配置纪元内,选票唯一,确定后,就不再修改。

      4、首先发现主服务器下线的Sentinel优先设置为领头哨兵。

      5、先到先得规则,如果有两个Sentinel同时要求目标Sentinel将自己设置为领头Sentinel,则哪个消息先到达,执行哪个。抛弃后面到达的消息。

      6、半数规则。领头Sentinel需要得到超过半数以上的投票,公式为 n/2+1 (n/2向下取整,且一般情况下,n为奇数)

      7、在同一个配置纪元下,领头Sentinel选举失败,则循环上述的规则。

      注意点:如何才能确保领头唯一,且选举的时候不进入死循环。上述的规则,就是答案。

    主服务器的选举:

      1、从服务器正常。

      2、根据从服务器的优先级进行排序。

      3、根据从服务器的复制偏移量进行排序。

      4、根据从服务器的运行ID进行排序。

      5、根据这三个组合排序,获取第一个从服务器做为主服务器。 

      注意点:选取数据最新的从服务器作为主服务器。

    选好主服务器后,进行故障转移:

      1、让从服务器复制新的主服务器。

      2、如果已经下线的主服务器再次上线,则该服务器作为新主服务器的从服务器。

  • 相关阅读:
    31款简单实用的CSS+JS下拉菜单脚本
    POWERDESIGNER 15 反向生成PDM[转]
    WCF异常信息
    下载文件
    分区表的维护 ORA14402 更新分区关键字列
    [转]Winform框架之字典数据管理
    用例图(User Case)
    datetime的时值
    JS date对象的减法处理
    JS获取当前页面的高度
  • 原文地址:https://www.cnblogs.com/chen--biao/p/9899265.html
Copyright © 2011-2022 走看看