Java客户端_zkclient库操作Zookeeper

使用zookeeper遇到问题:

  • 重复注册watcher
  • session失效重连
  • 异常处理(删除节点不能有子节点,新增节点必须有父节点等)

zkclient是Github上一个开源的Zookeeper客户端,在Zookeeper原生 API接口之上进行了包装,是一个更加易用的Zookeeper客户端。同时Zkclient在内部实现了诸如Session超时重连,Watcher反复注册等功能,从而提高开发效率。

添加依赖

复制代码
<dependency>
   <groupId>com.101tec</groupId>
   <artifactId>zkclient</artifactId>
   <version>0.10</version>
</dependency>

创建会话

复制代码
String connStr = "192.168.154.128:2181";
ZkClient zk = new ZkClient(connStr);

创建节点

复制代码
String res = zk.create("/root", "hgy", CreateMode.PERSISTENT);

修改节点数据

复制代码
zk.writeData("/root", "hgy");

获取节点数据

复制代码
String res = zk.readData("/root");

删除节点

复制代码
zk.delete("/root");

注册数据监听

java 复制代码
   zk.subscribeDataChanges("/root/ghz", new IZkDataListener() {


       @Override
       public void handleDataDeleted(String arg0) throws Exception {
         System.err.println("数据删除:" + arg0);
       }
       @Override
       public void handleDataChange(String arg0, Object arg1) throws Exception {
         System.err.println("数据修改:" + arg0 + "------" + arg1);


       }
     });

注册节点监听

java 复制代码
zk.subscribeChildChanges("/root", (arg0, arg1) -> {
       System.err.println("子节点发生变化:" + arg0);
       arg1.forEach(f -> {
         System.out.println("content:" + f);
       });
     });
相关推荐
AI你一生一世7 小时前
不止于时序存储:DolphinDB 如何成为 AI 时代的工业智能底座
java·人工智能·struts·时序数据库·工业智能·dolphindb·ai基础设施
云-缩影7 小时前
拆解 AI 图像生成应用的后端架构:ECS、OSS 和大模型 API 怎么配合
java·spring boot·后端
瑞克-桑切斯7 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
海的透彻12 小时前
dockerfile如何快速构建容器(java服务)
java·开发语言
code2cat12 小时前
Java工具篇之Gradle:用任务图组织构建与交付
java·开发语言·单元测试·gradle
后台模板学习13 小时前
大模型 Prompt 工程在电商订单系统中的踩坑记录
java·python·prompt
w_zero_one13 小时前
算法--构造
java·数据结构·算法
SL_staff13 小时前
制造业订单交付崩盘?用四层协同框架重建交付可信度(技术实践)
java·产品·全栈
SL_staff14 小时前
打破风控迭代死循环:用决策编排重构业务与技术协作链路
java·产品·全栈
Mikko714 小时前
Redis 连接数满了服务端有错误信息吗?连接数不增加却命令超时?6.2 实测连接池、超时与大 key 怎么判定
java·spring boot·redis·后端