Zookeeper如何正確設定和獲取watcher

2021-07-14 18:00:49 字數 1389 閱讀 7079

watcher 設定是開發中最常見的,需要搞清楚watcher的一些基本特徵,對於exists、getdata、getchild對於節點的不同操作會收到不同的 watcher資訊

state=-112 會話超時狀態

state= -113 認證失敗狀態

state=  1 連線建立中

state= 2 (暫時不清楚如何理解這個狀態,zoo_associating_state)

state=3 連線已建立狀態

state= 999 無連線狀態

type=1 建立節點事件

type=2 刪除節點事件

type=3 更改節點事件

type=4 子節點列表變化事件

type= -1 會話session事件

type=-2 監控被移除事件

父節點的變更以及孫節點的變更都不會觸發watcher,而對watcher本身節點以及子節點的變更會觸發watcher,具體參照下表。

操作方法

觸發watcher

watcher state

watcher type

watcher path

create當前節點

getdata××

××getchildren√3

4√exists××

××set當前節點

getdata√3

3√getchildren××

××exists√3

3√delete當前節點

getdata√3

2√getchildren√3

2√exists√3

2√create子節點

getdata××

××getchildren√3

4√exists××

××set子節點

getdata××

××getchildren××

××exists××

××delete子節點

getdata××

××getchildren√3

4√exists××

××恢復連線

getdata√1

-1×getchildren√1

-1×exists√1

-1×恢復連線session未超時

getdata

√-112-1×

getchildren

√-112-1×

exists

√-112-1×

恢復連線session超時

getdata√3

-1×getchildren√3

-1×exists√3

-1×注:×表示否,√表示是。

ZooKeeper如何設定監視點

zookeeper的api中的所有讀操作 getdata getchildren和exists,均可以選擇在讀取的znode節點上設定監視點。使用監視點機制,需要實現watcher介面類,實現其中的方法如下 public void process watchedevent event watched...

CentOS7安裝Zookeeper(正確姿勢)

cd opt 解壓壓縮包,解壓完成後當前目錄生成乙個apache zookeeper 3.6.1 bin的資料夾 tar zxvf apache zookeeper 3.6.1 bin.tar.gz 修改資料夾名稱為zookeeper 3.6.1 好記 mv apache zookeeper 3.6...

設定約束後 如何獲取正確的frame

1 任何原因引起view的尺寸被改變 2 呼叫viewcontroller的 viewwilllayoutsubviews 方法 3 未啟用autolayout情況,呼叫 layoutsubviews 4 啟用autolayout情況,呼叫viewcontroller的 updateviewcons...