ZooKeeper Java客户端API如何更新数据
发表于:2025-02-20 作者:千家信息网编辑
千家信息网最后更新 2025年02月20日,这篇文章将为大家详细讲解有关ZooKeeper Java客户端API如何更新数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。同步更新数据import
千家信息网最后更新 2025年02月20日ZooKeeper Java客户端API如何更新数据
这篇文章将为大家详细讲解有关ZooKeeper Java客户端API如何更新数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
同步更新数据
import java.util.concurrent.CountDownLatch;import org.apache.zookeeper.CreateMode;import org.apache.zookeeper.KeeperException;import org.apache.zookeeper.WatchedEvent;import org.apache.zookeeper.Watcher;import org.apache.zookeeper.Watcher.Event.KeeperState;import org.apache.zookeeper.Watcher.Event.EventType;import org.apache.zookeeper.ZooKeeper;import org.apache.zookeeper.ZooDefs.Ids;import org.apache.zookeeper.data.Stat;public class SetData_API_Sync_Usage implements Watcher { private static CountDownLatch connectedSemaphore = new CountDownLatch(1); private static ZooKeeper zk = null; public static void main (String[] args) throws Exception{ String path = "/titush-book2"; zk = new ZooKeeper("202.201.*.*:2100", 5000, new SetData_API_Sync_Usage()); connectedSemaphore.await(); zk.create(path, "1231".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); zk.getData(path, true, null); Stat stat = zk.setData(path, "4561".getBytes(), -1); System.out.println(stat.getCzxid()+","+stat.getMzxid()+","+stat.getVersion()); Stat stat2 = zk.setData(path, "4561".getBytes(), stat.getVersion()); System.out.println(stat2.getCzxid()+","+stat2.getMzxid()+","+stat2.getVersion()); try{ zk.setData(path, "456".getBytes(), stat.getVersion()); } catch ( KeeperException e) { System.out.println("Error:" + e.code() + "," + e.getMessage()); } Thread.sleep( Integer.MAX_VALUE); } @Override public void process(WatchedEvent event) { if (KeeperState.SyncConnected == event.getState()) { if (EventType.None == event.getType() && null == event.getPath()) { connectedSemaphore.countDown(); } } }}
结果打印
111,112,1111,113,2Error:BADVERSION,KeeperErrorCode = BadVersion for /titush-book2
数据节点的当前最新版本表示为 -1,第一版本表示为 0。
第一次设置数据后版本更新为 1,第二次设置后版本更新为 2。
第三次用版本 1 去更新时出现错误,因为此时的版本已经为 2 了。
这里就是乐观锁的使用,stat.getVersion()
用来进行写入校验。
关于ZooKeeper Java客户端API如何更新数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
更新
数据
版本
客户
客户端
内容
文章
更多
知识
篇文章
不错
乐观
就是
最新版
第一次
第一版
结果
节点
质量
错误
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器设备回收公司哪家便宜
我的世界中世纪服务器生存模组
国家规定网络安全等级
数据库删除数据 外键约束
安卓开发需要学数据库吗
杭州bim软件开发工程师
为什么数据库还原失败
无锡数据库备份
出国留学软件开发专业好
华为云数据库服务微认证考试
兰州软件开发app开发
可以管理服务器的协议
网络技术设计上网方案
数据库模型转化的习题
前端框架 订阅数据库
怎么在数据库中插入列名
ip网络技术大题
数据库中安全控制手段
数据库中undefined
软件开发表示什么
数据库表列数
网络技术relayagent
我的世界中世纪服务器生存模组
e创政府网站数据库
服务器域名是网址的哪一部分
青海租用gpu服务器价格表
如何自己开设mc服务器
浦东新区品牌软件开发质量保障
网络技术与应用专业学校排名
软件开发表示什么