1.zookeeper选举机制是过半机制:集群中只要过半节点存活,集群就可用。
2.zookeeper搭建的时候并不需要指定leader和follower,而是通过其内部的选举机制临时产生的。
3.举例说明选举机制
假设有5台服务器组成了zookeeper集群,他们的ID依次为1~5。
(1)假设先启动服务器1,此时只有他启动了,他发出去的报文没有任何回应,此时他的选举状态为looking。
(2)服务器2启动看,它会和服务器1通信,互相交换自己的选举结果,(它们首先会投自己一票,但发现自己票数不过半。)由于两者没有历史数据,所以ID值较大的服务器2胜出,但没有达到超过半数以上服务器同意选举他,所以服务器1,和服务器2,继续保持looking状态。
(3)服务器3启动,由以上可知,服务器3获得了服务器1和服务器2的选票,此时他有3票,超过半数,服务器3成为leader
(4)服务器4启动,由于已经有半数以上服务器选举了服务3,所以服务器4只能是follower。
(5)服务器5启动,和4一样是follower。
集群搭建注意点:
在各个zkData目录下创建一个myid的文件,,并依次递增给myid赋值。比如第一台myid上写入1,第二天写入2