ZooKeeper-Watch机制
前言
Watch机制作为ZooKeeper的三大机制之一(znode、watch、acl),为很多Zookeeper使用场景提供了支持。Watch机制你可以理解为一种观察者模式(订阅/发布)。
监听事件类型
这里主要学习SyncConnected(连接之后的监听)。
先启动两个客户端,并使用命令行客户端连接zk。
- NodeCreated
第一步:先监听一个节点;第二步:创建此节点;第三步:收到对应的通知。 - NodeDeleted
第一步:创建此节点监听;第二步:删除此节点;第三步:收到此节点的通知。 - NodeDataChanged
第一步:创建节点;第二步:创建监听;第三步:修改节点数据;第四步:收到监听时间通知。 - NodeChildrenChanged
这里监听的命令会发生变化,不再是 stat /path watch,换成 ls /path watch。
第一步:创建监听;第二步:创建子节点(这里我试了两次创建子节点,但是只触发了一次,说明watch注册完,只能触发一次);第三步:获取通知。
另外注意:此监听只能监听子节点列表变化,无法监听子节点数据变化。