多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
*(大致了解 ZooKeeper 选举机制即可)* <br/> 1. 半数机制:集群中半数以上机器存活,集群可用。所以 zookeeper 适合装在<mark>奇数台</mark>机器上。 2. Zookeeper 虽然在配置文件中并没有指定 master 和 slave。但是,zookeeper工作时,是有一个节点为 leader,其他则为 follower,Leader 是通过内部的选举机制临时产生的。 3. leader 的选择机制,zookeeper 提供了三种方式: ➢ LeaderElection ➢ AuthFastLeaderElection ➢ FastLeaderElection 以下主要分析 FastLeaderElection 机制。 4. 以一个简单的例子来说明整个选举的过程。 假设有五台服务器组成的 zookeeper 集群,它们的 id 从 1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这一点上,都是一样的。假设这些服务器依序启动,来看看会发生什么。 ![](https://img.kancloud.cn/8e/c9/8ec97ff0b5feb36b2ced27e5bce7428d_1199x442.png) 目前有 5 台服务器,每台服务器均没有数据,它们的编号分别是 1,2,3,4,5, 按编号依次启动,它们的选择举过程如下: 1)服务器 1 启动,给自己投票,然后发投票信息,由于其它机器还没有启动所以它收不到反馈信息,服务器 1 的状态一直属于 Looking(选举状态)。 2)服务器 2 启动,给自己投票,同时与之前启动的服务器 1 交换结果,由于服务器 2 的编号大所以服务器 2 胜出,但此时投票数没有大于半数,所以两个服务器的状态依然是 LOOKING。 3) 服务器 3 启动,给自己投票,同时与之前启动的服务器 1,2 交换信息,由于服务器 3 的编号最大所以服务器 3 胜出,此时投票数正好大于半数,所以服务器 3 成为领导者,服务器 1,2 成为小弟。 4) 服务器 4 启动,给自己投票,同时与之前启动的服务器 1,2,3 交换信息,尽管服务器 4 的编号大,但之前服务器 3 已经胜出,所以服务器 4 只能成为小弟。 5)服务器 5 启动,后面的逻辑同服务器 4 成为小弟。