在卡祖笛中获得选举食谱的现任领导者
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")
其中 zk
是 KazooClient
有没有更好的验证leader的方法?
Kazoo 遵循 zookepeers 的建议,即索引最小的节点应该获取锁。 Lock::_inner_acquire
确保锁被最小的索引获取,在获取锁之前总是等待前任完成。因此,election.lock.contenders()[0]
将永远是领导者(当然除非列表为空)。
我可以使用 election.lock._get_sorted_children()
获取当前竞争者,使用 election.lock.contenders()
获取相应的标识符。但是 election.lock.contenders()
也会对列表进行排序,所以 election.lock.contenders()[0]
会一直是领导者吗?
注意,election = zk.Election("/path", "uuid")
其中 zk
是 KazooClient
有没有更好的验证leader的方法?
Kazoo 遵循 zookepeers 的建议,即索引最小的节点应该获取锁。 Lock::_inner_acquire
确保锁被最小的索引获取,在获取锁之前总是等待前任完成。因此,election.lock.contenders()[0]
将永远是领导者(当然除非列表为空)。