Zookeeper 如何选举master 主节点?

Posted inet_ygssoftware

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper 如何选举master 主节点?相关的知识,希望对你有一定的参考价值。

还记得上面我们的所说的临时节点吗?因为 Zookeeper 的强一致性,能够很好地在保证 在高并发的情况下保证节点创建的全局唯一性 (即无法重复创建同样的节点)。

利用这个特性,我们可以 让多个客户端创建一个指定的节点 ,创建成功的就是 master。

但是,如果这个 master 挂了怎么办???

你想想为什么我们要创建临时节点?还记得临时节点的生命周期吗?master 挂了是不是代表会话断了?会话断了是不是意味着这个节点没了?还记得 watcher 吗?我们是不是可以 让其他不是 master 的节点监听节点的状态 ,比如说我们监听这个临时节点的父节点,如果子节点个数变了就代表 master 挂了,这个时候我们 触发回调函数进行重新选举 ,或者我们直接监听节点的状态,我们可以通过节点是否已经失去连接来判断 master 是否挂了等等。
在这里插入图片描述
总的来说,我们可以完全 利用 临时节点、节点状态 和 watcher 来实现选主的功能,临时节点主要用来选举,节点状态和watcher 可以用来判断 master 的活性和进行重新选举。

以上是关于Zookeeper 如何选举master 主节点?的主要内容,如果未能解决你的问题,请参考以下文章

[ZooKeeper之五] 使用 ZooKeeper 实现主-从模式

ZooKeeper中Master选举实现方式

第5章 选举模式和ZooKeeper的集群安装 5-1 集群的一些基本概念

elasticsearch 是如何实现 master 选举的 ?

elasticsearch 是如何实现master选举的?

Zookeeper系列五:Master选举ZK高级特性:基本模型