Apache ZooKeeper - 事件监听机制详解
生活随笔
收集整理的這篇文章主要介紹了
Apache ZooKeeper - 事件监听机制详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 事件監聽機制命令
- Zookeeper事件類型
- 實操 -w
- get -w /path 監聽節點數據的變化
- ls -w /path 監聽子節點的變化(增,刪) [監聽目錄]
- ls -w /path 例子二 循環遞歸的監聽
- stat -w path 監聽節點屬性的變化
事件監聽機制命令
添加 -w 參數可實時監聽節點與子節點的變化,并且實時收到通知。非常適用保障分布式情況下的數據一至性。
其使用方式如下
| ls -w path | 監聽子節點的變化(增,刪) [監聽目錄] |
| get -w path | 聽節點數據的變化 |
| stat -w path | 監聽節點屬性的變化 |
| printwatches on | off |
針對節點的監聽:一旦事件觸發,對應的注冊立刻被移除,所以事件監聽是一次性的 . 依靠的客戶端和服務端建立的長連接實現的實時推送。
Zookeeper事件類型
- None: 連接建立事件
- NodeCreated: 節點創建
- NodeDeleted: 節點刪除
- NodeDataChanged:節點數據變化
- NodeChildrenChanged:子節點列表變化
- DataWatchRemoved:節點監聽被移除
- ChildWatchRemoved:子節點監聽被移除
實操 -w
get -w /path 監聽節點數據的變化
【會話一】
然后新開啟一個會話,去修改這個節點
【會話二】
重新回到【會話一】
觀察節點屬性的變化
ls -w /path 監聽子節點的變化(增,刪) [監聽目錄]
【會話一】
【會話二】
切到【會話一】 觀察輸出的監聽日志
當然了 delete 目錄,也會發生變化
如果對節點數據內容,ls -w 是收不到通知的,只能通過 get -w來實現 。
這里,監聽一點觸發,就失效了,切記。
ls -w /path 例子二 循環遞歸的監聽
如果監聽了某個目錄,那么該目錄下的子目錄的變更也會被監聽到。 當然了 也是一次性的。
stat -w path 監聽節點屬性的變化
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的Apache ZooKeeper - 事件监听机制详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apache ZooKeeper - 节
- 下一篇: Apache ZooKeeper - Z