gpt4 book ai didi

apache-zookeeper - ZooKeeper 可以在一次操作中获取 znode 数据和 znode 数据版本 (stat) 吗?

转载 作者:行者123 更新时间:2023-12-01 09:59:43 26 4
gpt4 key购买 nike

我正在开发一个使用 ZooKeeper 作为数据存储的应用程序。对于应用程序中的其中一种方法,我需要使用乐观并发控制。比如我需要实现一个获取znode数据的get方法,我使用znode数据版本进行乐观并发控制检查。据我了解,无法在一次操作中获得 znode 数据和 znode 数据版本。如果znode数据的更新竞争比较激烈,get方法将不起作用,因为在获取到znode数据后,znode数据可能会发生变化。所以我在问 - 有没有一种方法可以在一次操作中获得 znode 数据和 znode 数据版本(或 znode 统计信息),而无需在两者之间进行任何锁定尝试?

最佳答案

在 Java 中,您可以轻松实现您想要的:

Stat stat = new Stat();
byte[] data = zk.getData("/path", null, stat));

这在单个操作中读取数据和版本信息(在 stat 对象中)。回写数据时,传递的是读取时得到的版本号:
zk.setData("/path", data, stat.getVersion());

如果版本不匹配,该方法将抛出 KeeperException.BadVersionException ,这给你一个乐观锁。

关于apache-zookeeper - ZooKeeper 可以在一次操作中获取 znode 数据和 znode 数据版本 (stat) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17982606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com