zookeeper之选举机制

好久都没有更新博客了!今天跟大家谈谈zookeeper的选举机制吧
1> 半数机制,就是集群中半数以上的节点存活时,集群才可正常工作,所谓集群中有多少节点,相信就不要我多说了吧
2>Zookeeper虽然在配置文件中并没有指定Master和Slave。但是,Zookeeper工作时,是有一个节点为Leader,其他则为Follower,Leader是通过内部的选举机制临时产生的
3>下面我们以一个简单例子来说明 zookeeper内部选举机制:
假设我们有5个节点,节点的myid依次是 1 2 3 4 5 ,我们依次启动,
首先启动myid为1的节点,每个节点都很自私的,首先投自己一票,但是集群中已经启动的节点数目不大于一半,无效;然后启动myid为2的节点,这个时候,当前节点投自己一票,而他比他id小的节点都会投给比他myid大的节点一票,这个时候myid为2的节点有两票,但集群中节点的数目任然不大于半数;无效;这个时候我们启动第三个节点,这个时候,第三个节点首先自己投给自己一票,然后比他id小的都给他投一票,他有了三票,这个时候,集群中已经启动的节点数目大于半数了,而且由于半数机制,myid为3的节点已经拥有了三票,他自然的成为了leader,这个时候后来的节点还是进行投票但是,只要leader不挂掉,他们永远是follower,除非leader挂了,他们就会根据以前的票数进行重新选举。
以上就是zookeeper选举机制

猜你喜欢

转载自blog.csdn.net/weixin_44112559/article/details/102632672