我可以使用election.lock._get_sorted_children()
和使用election.lock.contenders()
的相应标识符来获取当前的竞争者。但是election.lock.contenders()
也会对列表进行排序,election.lock.contenders()[0]
总是会成为领导者吗?
注意,election = zk.Election("/path", "uuid")
其中zk
是KazooClient
有没有更好的方法来验证领导者?
答案 0 :(得分:0)
Kazoo遵循动物园建议者的建议,索引最小的节点应该获得锁定。 Lock::_inner_acquire
确保最小索引获取锁定,始终在获取锁定之前等待前任完成。因此,election.lock.contenders()[0]
将永远是领导者(除非列表是空的)。