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方法去获取。
异步方式:
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.删除
同步方式:
/** * @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");
打印结果:
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<String> getChildren(String path,boolean b) 同步方式
List<String> 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时,则该节点不存在。