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);
       });
     });
相关推荐
JIngJaneIL4 分钟前
汽车租赁|汽车管理|基于Java+vue的汽车租赁系统(源码+数据库+文档)
java·vue.js·spring boot·汽车·论文·毕设·汽车租赁
曾经的三心草12 分钟前
JavaEE初阶-多线程1
android·java·java-ee
m***567216 分钟前
【Spring】Spring MVC案例
java·spring·mvc
Geoking.1 小时前
【Java】Java Stream 中的 collect() 方法详解:流最终操作的核心工具
java·开发语言
清风徐来QCQ1 小时前
javaScript(map,ref,?,forEach,watch)
java·前端·javascript
7***n751 小时前
Java构建工具
java·开发语言
Dandelion____z2 小时前
AI 驱动业务的致命风险:如何用架构设计守住安全底线?
java·大数据·人工智能·spring boot·aigc·jboltai
Q***K552 小时前
Kotlin与Java互操作指南
java·开发语言·kotlin
星空的资源小屋2 小时前
永久删除文件利器:Permadelete
java·javascript·人工智能
2201_757830872 小时前
Stream的终结方法
java·服务器·前端