说明
假设当前集群中有 5 台服务,还没有启动
服务器1 启动
发起一次选举,服务器1 投自己一票。此时 服务器1 票数一票,不够半数以上(3票),选举无法完成,服务器1 状态保持为 LOOKING
提示: 在 /program/zookeeper-3.4.14/conf/zoo.cfg 配置的所有zk服务器的信息
服务器2 启动
再发起一次选举,
服务器1和服务器2分别投自己一票然后 交换选票信息:此时
服务器1发现服务器2的myid更大,就投票给服务器2。此时
服务器1票数 0票,服务器2票数 2票,没有半数以上结果,选举无法完成,服务器1,服务器2状态都是LOOKING
服务器3 启动
发起一次选举,
服务器1、服务器2、服务器3分别投自己一票然后 交换选票信息:此时
服务器1和服务器2,发现服务器3的myid更大,就投票给服务器3。此次投票结果:
服务器1为 0票,服务器2为 0票,服务器3为 3票。此时
服务器3的票数已经超过半数,服务器3当选Leader,状态为LEADING。服务器1,服务器2更改状态为FOLLOWING
服务器4 启动
发起一次选举。此时 服务器1,服务器2,服务器3 已经不是 LOOKING 状态,不会更改选票信息。
交换选票信息结果:服务器3 为3票,服务器4 为 1票。此时 服务器4 服从多数,就投票给 服务器3,并更改状态为 FOLLOWING;
服务器5 启动
同4一样




