看看paxos算法先,不然看这个zookeeper会非常难懂。
原理简单来说,就是要选举leader,会生成一个zxid,然后分发给所有的server(所以这里一台server可以接受多台server给他发送要选举leader的请求),然后各个server根据发送给自己的zxid,选择一个值最大的,然后将这个选择返回给发送这个zxid的server,只要这个server收到的答复大于等于2/n+1个(也就是超过半数的同意票),则表明自己当选为leader,然后会向所有server广播自己已经成为leader。
本文介绍了ZooKeeper中领导者选举的基本原理。通过生成zxid并分发给集群中的所有服务器来进行选举过程。每台服务器根据接收到的zxid选出一个最大值,并将选择结果反馈给发送该zxid的服务器。当该服务器收到超过半数的支持时,即成为新的领导者,并向集群广播这一消息。
408

被折叠的 条评论
为什么被折叠?



