zoukankan      html  css  js  c++  java
  • Sentinel

       +reset-master :主服务器已被重置。
        +slave :一个新的从服务器已经被 Sentinel 识别并关联。
        +failover-state-reconf-slaves :故障转移状态切换到了 reconf-slaves 状态。
        +failover-detected :另一个 Sentinel 开始了一次故障转移操作,或者一个从服务器转换成了主服务器。
        +slave-reconf-sent :领头(leader)的 Sentinel 向实例发送了 [SLAVEOF](/commands/slaveof.html) 命令,为实例设置新的主服务器。
        +slave-reconf-inprog :实例正在将自己设置为指定主服务器的从服务器,但相应的同步过程仍未完成。
        +slave-reconf-done :从服务器已经成功完成对新主服务器的同步。
        -dup-sentinel :对给定主服务器进行监视的一个或多个 Sentinel 已经因为重复出现而被移除 —— 当 Sentinel 实例重启的时候,就会出现这种情况。
        +sentinel :一个监视给定主服务器的新 Sentinel 已经被识别并添加。
        +sdown :给定的实例现在处于主观下线状态。
        -sdown :给定的实例已经不再处于主观下线状态。
        +odown :给定的实例现在处于客观下线状态。
        -odown :给定的实例已经不再处于客观下线状态。
        +new-epoch :当前的纪元(epoch)已经被更新。
        +try-failover :一个新的故障迁移操作正在执行中,等待被大多数 Sentinel 选中(waiting to be elected by the majority)。
        +elected-leader :赢得指定纪元的选举,可以进行故障迁移操作了。
        +failover-state-select-slave :故障转移操作现在处于 select-slave 状态 —— Sentinel 正在寻找可以升级为主服务器的从服务器。
        no-good-slave :Sentinel 操作未能找到适合进行升级的从服务器。Sentinel 会在一段时间之后再次尝试寻找合适的从服务器来进行升级,又或者直接放弃执行故障转移操作。
        selected-slave :Sentinel 顺利找到适合进行升级的从服务器。
        failover-state-send-slaveof-noone :Sentinel 正在将指定的从服务器升级为主服务器,等待升级功能完成。
        failover-end-for-timeout :故障转移因为超时而中止,不过最终所有从服务器都会开始复制新的主服务器(slaves will eventually be configured to replicate with the new master anyway)。
        failover-end :故障转移操作顺利完成。所有从服务器都开始复制新的主服务器了。
        +switch-master :配置变更,主服务器的 IP 和地址已经改变。 这是绝大多数外部用户都关心的信息。
        +tilt :进入 tilt 模式。
        -tilt :退出 tilt 模式。
    



    • 故障转移


    一次故障转移操作由以下步骤组成:

        发现主服务器已经进入客观下线状态。
        对我们的当前纪元进行自增(详情请参考 Raft leader election ), 并尝试在这个纪元中当选。
        如果当选失败, 那么在设定的故障迁移超时时间的两倍之后, 重新尝试当选。 如果当选成功, 那么执行以下步骤。
        选出一个从服务器,并将它升级为主服务器。
        向被选中的从服务器发送 SLAVEOF NO ONE 命令,让它转变为主服务器。
        通过发布与订阅功能, 将更新后的配置传播给所有其他 Sentinel , 其他 Sentinel 对它们自己的配置进行更新。
        向已下线主服务器的从服务器发送 SLAVEOF 命令, 让它们去复制新的主服务器。
        当所有从服务器都已经开始复制新的主服务器时, 领头 Sentinel 终止这次故障迁移操作。

    每当一个 Redis 实例被重新配置(reconfigured) —— 无论是被设置成主服务器、从服务器、又或者被设置成其他主服务器的从服务器 —— Sentinel 都会向被重新配置的实例发送一个 CONFIG REWRITE 命令, 从而确保这些配置会持久化在硬盘里。

    • Sentinel 使用以下规则来选择新的主服务器:


        在失效主服务器属下的从服务器当中, 那些被标记为主观下线、已断线、或者最后一次回复 PING 命令的时间大于五秒钟的从服务器都会被淘汰。
        在失效主服务器属下的从服务器当中, 那些与失效主服务器连接断开的时长超过 down-after 选项指定的时长十倍的从服务器都会被淘汰。
        在经历了以上两轮淘汰之后剩下来的从服务器中, 我们选出复制偏移量(replication offset)最大的那个从服务器作为新的主服务器; 如果复制偏移量不可用, 或者从服务器的复制偏移量相同, 那么带有最小运行 ID 的那个从服务器成为新的主服务器。

  • 相关阅读:
    SilverLight学习篇——框架搭建及实例讲述(huangyezi)
    MVVMLight学习
    MVVMLight学习篇——WPF MVVMLightToolkit(李凤桐)
    MvvmLight学习篇—— Mvvm Light Toolkit for wpf/silverlight系列(子林)
    Erro:Namespace http://schemas.microsoft.com/expression/blend/2008 is not resolved.
    MEF学习篇——MEF程序设计指南(Bēniaǒ)
    Error:The tag 'Label' does not exist in XML namespace 'http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk'.
    silverlight页面间常用跳转模式
    UIViewController的生命周期以及相互之间通信
    解析:如何快速掌握SQL Server的锁机制
  • 原文地址:https://www.cnblogs.com/zhangXingSheng/p/9385894.html
Copyright © 2011-2022 走看看