ZooKeeper API使用 I 其他API的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liupeifeng3514/article/details/82113132

其他原生API,例如:修改节点、删除节点、节点检查是否存在和节点操作权限控制,Zookeeper提供的方法的使用方式与前面操作类似,具体使用案例不再逐一用实例说明。

修改节点


// 同步修改
public Stat setData(final String path, byte data[], int version)
// 异步修改
public void setData(final String path, byte data[], int version, StatCallback cb, Object ctx)

这里列出的两个API分别是同步和异步的修改接口,API方法的参数说明如下表所示:

参数名 说明
path 操作节点路径
data[] 要覆盖现有节点内容的字节数组
version 指定更新节点的数据版本。当为-1时表示任何版本
cb 注册一个回调函数
ctx 传递上下文信息

说明:

  • 更新操作中的版本参数如果为-1,则表示更新操作针对任何版本均可。当更新版本不为-1,且不等于节点的目前版本,则更新失败。
  • 即使 data[] 的数据跟原有节点内的数据一样,进行更新操作之后,节点的信息也会发生变化,比如版本信息和更新时间。
  • 异步操作与同步操作的区别可参考之前章节的类似接口。

删除节点


public void delete(final String path, int version)
public void delete(final String path, int version, VoidCallback cb, Object ctx)

这里列出的两个API分别是同步和异步的删除接口,API方法的参数说明如下表所示:

参数名 说明
path 操作节点路径
version 指定更新节点的数据版本。当为-1时表示任何版本
cb 注册一个回调函数
ctx 传递上下文信息

说明

  • 版本操作同修改节点使用方法。
  • 如果一个节点下面有子节点,需先删除子节点,然后才能删除父节点。

节点检查是否存在


原生API提供4个相应的方法,通过这些方法,可以检查节点是否存在,返回节点Stat信息,对节点进行注册监听事件等操作。

public Stat exists(final String path, Watcher watcher)
public Stat exists(String path, boolean watch)
public void exists(final String path, Watcher watcher, StatCallback cb, Object ctx)
public void exists(String path, boolean watch, StatCallback cb, Object ctx)
参数名 说明
path 操作节点路径
watcher 注册Watcher,用于监听节点创建、节点删除、节点更新事件。
watch 是否使用默认watcher
cb 注册一个回调函数
ctx 传递上下文信息

说明

  • 无论节点是否存在使用exists方法都可以进行监听注册。节点不存在时注册监听之后,当节点被创建则会通知客户端。
  • 指定节点的子节点的变化不会通知客户端。

猜你喜欢

转载自blog.csdn.net/liupeifeng3514/article/details/82113132