Loading

Zookeeper:JavaApi更新、删除、读取节点

1.更新

同步方式:

1
2
3
4
5
6
7
/**
         * 三个参数
         * 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方法去获取。

 异步方式:

1
2
3
4
5
6
7
8
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");

 打印结果:

 

 2.删除

同步方式:

1
2
3
4
5
6
7
/**
 * @param path
 *       the path of the node to be deleted.
 *  @param version
 *       the expected node version. 当为-1时,表示不考虑当前节点的版本信息。
*/
zooKeeper.delete("/delete/node1",0);

异步方式:

1
2
3
4
5
6
7
8
//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");

打印结果:

 

 

 3.读取

1
2
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.查看子节点

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

path:znode路径

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

callBack:异步回调接口。

ctx:传递上下文参数。

5.判断节点是否存在

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

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

posted @   秋风飒飒吹  阅读(791)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示