java 删除zk节点_Zookeeper:JavaApi更新、删除、读取节点

1.更新

同步方式:

/**

* 三个参数

* the path of the node

* the data to set

* the expected matching version

*/

Stat stat = zooKeeper.setData("/set/node1", "NODE1".getBytes(), 1);

返回值Stat中封装了set命令中的返回值,可以通过Stat的各种get方法去获取。

db07e70071e778ba9c82a0ce847a54ec.png

异步方式:

zooKeeper.setData("/set/node1", "nnn".getBytes(), -1, new AsyncCallback.StatCallback() {

public void processResult(int rc, String path, Object ctx, Stat stat) {

System.out.println(rc);//0代表修改成功

System.out.println(path);//节点路径

System.out.println(ctx);//上下文参数

System.out.println(stat);//属性描述对象

}

},"ctx");

打印结果:

f6de536d3dd2c641f008ac3c86639903.png 

e73da377f0cf21b9b8209bd25b7c8732.png

2.删除

同步方式:

/**

* @param path

* the path of the node to be deleted.

* @param version

* the expected node version. 当为-1时,表示不考虑当前节点的版本信息。

*/

zooKeeper.delete("/delete/node1",0);

异步方式:

//VoidCallback:异步回调接口

zooKeeper.delete("/delete/node2", -1, new AsyncCallback.VoidCallback() {

public void processResult(int rc, String path, Object ctx) {

System.out.println(rc);//0表示删除成功

System.out.println(path);//节点路径

System.out.println(ctx);//上下文信息

}

},"ctx");

打印结果:

967bcc5e349759bd6b7f647a5c060ee3.png

3.读取

getData(String path,boolean b,Stat stat) 同步方式

getData(String path,boolean b,AsyncCallback.DataCallback callBack,Object ctx) 异步方式

path:znode路径

b:是否使用连接对象中注册的监视器。

stat:返回znode的元数据。

callBack:异步回调接口。

ctx:传递上下文参数。

4.查看子节点

List getChildren(String path,boolean b) 同步方式

List getChildren(String path,boolean b,AsyncCallback.DataCallback callBack,Object ctx) 异步方式

path:znode路径

b:是否使用连接对象中注册的监视器。

callBack:异步回调接口。

ctx:传递上下文参数。

5.判断节点是否存在

Stat exist(String path,boolean b) 同步方式

Stat exist(String path,boolean b,AsyncCallback.DataCallback callBack,Object ctx) 异步方式

当Stat为null时,则该节点不存在。

好的,我可以为您介绍一下 JavaZooKeeper 的简单使用。 首先,您需要通过 Maven 或 Gradle 将 ZooKeeper 客户端库添加到您的项目中。然后,您可以使用以下代码连接到 ZooKeeper 服务器: ```java String connectionString = "localhost:2181"; int sessionTimeout = 5000; Watcher watcher = event -> System.out.println("Event received: " + event); ZooKeeper zk = new ZooKeeper(connectionString, sessionTimeout, watcher); ``` 在这个例子中,我们使用本地的 ZooKeeper 服务器,并设置了一个会话超时时间为 5000 毫秒。我们还提供了一个 Watcher 对象来处理来自 ZooKeeper 的事件。 接下来,您可以使用 ZooKeeper API 来执行各种操作,例如创建节点读取节点数据、设置节点数据等。例如,要创建一个节点,您可以使用以下代码: ```java String path = "/myNode"; byte[] data = "myData".getBytes(); CreateMode createMode = CreateMode.PERSISTENT; zk.create(path, data, ZooDefs.Ids.OPEN_ACL_UNSAFE, createMode); ``` 这将在 ZooKeeper 中创建一个名为 "/myNode" 的持久节点,并将其数据设置为 "myData"。 同样,您可以使用以下代码读取节点数据: ```java String path = "/myNode"; byte[] data = zk.getData(path, false, null); String dataStr = new String(data); System.out.println("Data of node " + path + ": " + dataStr); ``` 这将从 ZooKeeper读取 "/myNode" 节点的数据,并将其打印到控制台上。 这只是 ZooKeeper API 的一小部分,您可以根据需要进行更多操作。希望这可以帮助您开始使用 Java 中的 ZooKeeper
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值