4

我能够election.lock._get_sorted_children()使用election.lock.contenders(). election.lock.contenders()还要对列表进行排序,所以永远election.lock.contenders()[0]是领导者?

注意,在election = zk.Election("/path", "uuid")哪里zkKazooClient

有没有更好的方法来验证领导者?

4

1 回答 1

1

Kazoo 遵循 zookepeers 的建议,即索引最小的节点应该获取锁。通过Lock::_inner_acquire始终在获取锁之前等待前辈完成,确保通过最小索引获取锁。因此,election.lock.contenders()[0]将永远是领导者(当然,除非列表是空的)。

于 2018-06-13T03:50:12.283 回答