Zookeeper watcher机制

一、watcher机制

1、针对每个节点的操作,都会有一个监督者-> watcher

2、当监控的某个对象(znode)发生了变化,则触发watcher事件

3、zk中的watcher是一次性的,触发后立即销毁

4、父节点,子节点 增删改都能触发其watcher

5、针对不同类型的操作,触发的watcher事件也不同

 1) (子)节点创建事件

 2)(子)节点删除事件

 3) (子)数据变化事件

二、父节点的watcher事件

通过get path [watch] 设置watcher

父节点增删改操作触发watcher

子节点增删改操作触发watcher

1. watcher事件类型

1)创建父节点触发 NodeCreated。如下图,创建nick节点,触发NoteCreated事件

2)修改父节点数据触发: NodeDataChanged

get /nick watch设置watch事件

set /nick 789 当修改节点值为789时,触发watch事件

 3)删除父节点触发NodeDeleted

get /nick watch设置watch事件

 删除节点 delete /nick 触发NodeDeleted事件

 

三、子节点watcher事件

1)ls为父节点设置watcher,创建子节点触发:NodeChildrenChanged

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

 

3)ls为父节点设置watcher,修改子节点不触发事件

针对子节点修改,需要将子节点当做父节点一样

四、watcher使用场景

1 统一资源配置

原文地址:https://www.cnblogs.com/linlf03/p/9824720.html