在我的项目中,我需要最新的序列号,而不需要获取子节点,因为子节点太多了。
答案 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/