1. 程式人生 > >Zookeeper學習筆記五之監控與通知

Zookeeper學習筆記五之監控與通知

監控與通知

Zookeeper通常以遠端服務的方式被訪問,如果每次訪問znode時,客戶端都需要獲得節點中的內容。這樣的代價就非常大。因為這樣會導致更高的延遲,而且Zookeeper需要做更多的操作,例如下圖中,第二次呼叫getChildren /tasks返回了相同的值,一個空的集合,是沒必要的

這是一個常見輪詢問題,為了替換輪詢問題,ZK選擇了基於通知(notification)的機制:客戶端向ZK註冊需要接收通知的znode,通過對znode設定監控點(watch)來接收通知。監控點是一個單詞觸發大操作,會觸發一個通知。為了接收多個通知,客戶端必須在每次通知後設置一個新的監控點。如下圖,當節點/tasks發生變化時,客戶端會收到一個通知,並從ZK讀取一個新值