zookeeper-集群leader选举源码剖析
集群各节点的通信架构(BIO)
leader 选举逻辑
启动:leader选举
- 启动时候的逻辑:
- 由于启动时候所有的服务器都是LOOKING:走上面图的逻辑
宕机:leader选举
- 如果是一个leader宕机,那么其他的follower在一定时间后没有接收到leader的心跳,那么他会将自己的状态更改为LOOKING,重新进行选举。
额外添加服务器:leader选举
- 由于原来的服务器集群已经有了leader。那么在这些节点收到新服务器发送的投票的时候,他都会将自己的leader发送回去(通过比较投票轮数,因为新的是0,稳定的至少是1)那么这个时候新服务器通过过半机制,也将自己设置为follower。