自3.4.x起,zookeeper序列号是否连续?

时间:2013-05-14 09:31:29

标签: apache-zookeeper

在我的项目中,我需要最新的序列号,而不需要获取子节点,因为子节点太多了。

2 个答案:

答案 0 :(得分:1)

根据this answer并通过我的实验证实,自Zookeeper 3.4以来,顺序znode从父级PersistedStat.cversion编号,存储在其下创建的znode的数量。您可以计算此数字查询父znode stat,然后应用以下公式:

PersistedStat.cversion = (ZnodeStat.cversion + ZnodeStat.numChildren) /2

这样,您就不需要使用get_children()来发现上次创建的znode的编号。

答案 1 :(得分:0)

我认为你不能那样做。 您可以观察n + 1节点(不存在),然后在创建时触发观察时采取行动。

还要考虑该节点发布自己的领导者选举。如果您有大量节点,这可能会导致大量数据泄露。 http://techblog.outbrain.com/2011/07/leader-election-with-zookeeper/