04_zookeeper的watcher机制

 

【watcher简述】node

* zk针对每一个节点的操做,都会有一个监督者:watcherspa

* 当监控的某个对象(znode)发生了变化,则出发watcher3d

* zk中的watcher是一次性的,出发后当即销毁code

* 父节点,子节点增删改都能触发其watcher对象

* 针对不一样类型的操做,触发的watcher事件也不一样:blog

  1.节点/节点的子节点 建立事件事件

  2.节点/节点的子节点 删除事件get

  3.节点/节点的子节点 节点数据变化事件class

 

 

【设置watcher】监控

get path [watch]
stat path [watch]

父节点 增删改 触发watcher

子节点 增删改 触发watcher

 

【watcher事件】

【父节点事件类型】

[ 建立父节点触发:NodeCreated ]

WATCHER:: WatchedEvent state:SyncConnected type:NodeCreated path:/father Created /father ========================================
/** * WatchedExent被触发 * 事件类型:建立节点类型 NodeCreated * 路径:/father */

 

[ 修改父节点数据触发:NodeDataChanged ]

[ 删除父节点触发:NodeDeleted ]

 【子节点事件类型】

ls path [watch]

[示例1:ls设置建立子节点事件]

ls为父节点设置watcher,建立子节点会触发NodeChildrenChanged事件 

[ 示例2:ls设置删除子节点的操做 ]

ls为父节点设置watcher,删除子节点触发:NodeChildrenChanged

 [ 注意 ]

使用 ls 命令为父节点设置watcher,修改子节点的值不会触发事件。

若是但愿修改子节点的值也触发事件,应该把字节点当成父节点,使用get path [watch]命令

get path [watch]

改为下边这种get方式便可

相关文章
相关标签/搜索