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

相關文章
相關標籤/搜索