在卡祖笛中获得选举食谱的现任领导者

getting current leader of election recipe in kazoo

我可以使用 election.lock._get_sorted_children() 获取当前竞争者,使用 election.lock.contenders() 获取相应的标识符。但是 election.lock.contenders() 也会对列表进行排序,所以 election.lock.contenders()[0] 会一直是领导者吗?

注意,election = zk.Election("/path", "uuid") 其中 zkKazooClient

有没有更好的验证leader的方法?

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