哨兵机制

识别挂掉的主节点

quorum(法定人数)
是判定主节点不能访问所需要的最少哨兵数量

执行失效备援perform a failover

其中一个哨兵需要被选为救援的领导,并被授权执行救援,而这需要过半数的哨兵同意

So for example if
you have 5 Sentinel processes, and the quorum for a given master set to the
value of 2, this is what happens:

  • If two Sentinels agree at the same time about the master
    being unreachable, one of the two will try to start a failover.
  • If there are at least a total of three Sentinels
    reachable, the failover will be authorized and will actually start.

In practical terms
this means during failures Sentinel never starts a failover if the
majority of Sentinel processes are unable to talk
 (aka no failover in
the minority partition).

一主一从哨兵

+----+         +----+

| M1 |-------| R1 |

| S1 |         | S2 |

+----+         +----+

Configuration: quorum = 1

如果M1挂掉,R1会成为主节点,因为两个哨兵可以就M1的失效达成一致,而且可以授权救援。表面上这样可以工作,但是请看下面这种情况。

如果M1所在的机器直接停掉,同时S1就停止工作。这样的话S2就不能授权救援,整个系统就不可用了。

要注意的是,失效救援是需要过半数的哨兵同意。同时如果上图只在一边执行救援,并且没有授权,会非常危险:

+----+           +------+

| M1 |----//-----| [M1] |

| S1 |           | S2   |

+----+           +------+

上面的配置了两个主节点(完美对称)(假设S2可以没有授权进行救援)。

客户端可能无限期地往两边写入数据,当网络恢复时并不能知道哪边的配置是对的。

所以至少请在配置三个哨兵在三个不同的机器上。

最新文章

  1. 图解CSS3制作圆环形进度条的实例教程
  2. linux 时间管理——概念、注意点(一)【转】
  3. subline
  4. Func<T>与Action<T>委托泛型介绍:转
  5. 【转】Oracle 执行动态语句
  6. css框模型
  7. 搭通自己的电脑与GitHub的传输通道
  8. .net core 使用DES加密字符串
  9. java_jdbc_oracle简单总结(2016-11-23)
  10. vsim生成VCD波形文件(verilog)
  11. 自定义tableviewCell的分割线
  12. Java - 文件(IO流)
  13. Android App开之标注切图
  14. WPF:DataTemplateSelector设置控件不同的样式
  15. Python文件夹备份
  16. openSUSE Leap 15.0 Adobe Flash Player 安装说明
  17. Oracle——trunc()函数的使用
  18. 随机森林学习-sklearn
  19. 通过阅读python subprocess源码尝试实现非阻塞读取stdout以及非阻塞wait
  20. Java基础-Java中的并法库之线程池技术

热门文章

  1. python gitlab 学习笔记
  2. WPF 多个选项卡TabControl 页面分离
  3. Python修炼之路-装饰器、生成器、迭代器
  4. 在CentOS 6.4上安装Puppet配置管理工具
  5. return和exit以及C语言递归函数
  6. springboot使用外部application.properties配置文件
  7. CSS布局之flexbox
  8. java+web+大文件上传下载
  9. BZOJ 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 水题~
  10. POJ 3660 Cow Contest 任意两点之间的关系 Floyd