我能够获得使用election.lock._get_sorted_children()的当前竞争者和使用election.lock.contenders()的相应标识符。但是election.lock.contenders()也会对名单进行排序,所以election.lock.contenders()[0]会永远是领导者吗?
注意,election = zk.Election("/path", "uuid")中zk是KazooClient
有什么更好的方法来核实头目吗?
发布于 2018-06-13 03:50:12
Kazoo遵循zookepeers的建议,即索引最小的节点应该获取锁。Lock::_inner_acquire确保锁是由最小的索引获得的,在获取锁之前总是等待前辈完成。因此,election.lock.contenders()[0]将永远是领导者(当然,除非列表是空的)。
https://stackoverflow.com/questions/50652758
复制相似问题