zookeeper-watcher的javaApi相关使用

125 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第12天,点击查看活动详情

java-api-Watcher通知状态

KeeperState是客户端与服务端连接状态发生变化时对应的通知类型,并且是一个枚举类,枚举属性包含:

  1. SyncConnected:客户端与服务器正常连接时
  2. Disconnected:客户端与服务器断开连接时
  3. Expired:会话session失效时
  4. AuthFailed:身份认证失败时

java-api-Watcher事件类型

zookeeper包中描述watcher事件类型的类是EventType。当EventType变化时, KeeperState是一定处于SyncConnected通知状态下;而当KeeperState发生变化时, EventType一定为None。 EventType也是一个枚举类,枚举属性:

  1. None:无
  2. NodeCreated:Watcher监听的数据节点被创建时
  3. NodeDeleted:Watcher监听的数据节点被删除时
  4. NodeDataChanged:Watcher监听的数据节点内容发生变更时
  5. NodeChildrenChanged:Watcher监听的数据节点的子节点列表发生变更时

检查节点是否存在

exists(String path, boolean b)

exists(String path, Watcher w)

方法1表示使用连接对象的监视器,方法2表示自定义监视器

其中path参数表示znode的路径、b表示是否使用连接对象时注册的监听器,w表示自定义的监视器对象

查看节点

getData(String path, boolean b, Stat stat)

getData(String path, Watcher w, Stat stat)

方法1表示使用连接对象的监视器,方法2表示自定义监视器,方法返回一般有两种结果:NodeDeleted(节点删除)、NodeDataChanged(节点内容发生变化)

方法中的参数path表示znode的路径、b表示是否使用连接对象时注册的监听器,w表示自定义的监视器对象、stat表示返回znode的元数据

查看子节点

getChildren(String path, boolean b)

getChildren(String path, Watcher w)

方法1表示使用连接对象的监视器、方法2表示自定义监视器,方法返回一般也有两种结果:NodeDeleted、NodeDataChanged