【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方式便可