ZooKeeper第三方客户端CuratorFramework简介
結論:在使用CuratorFramework的監聽機制時,
????如果使用NodeCache,對于多級路徑,即使不創建該路徑,設置監聽后CuratorFramework會主動創建從第一級路徑到倒數第二級的路徑,比如要監聽路徑 "/a/b/c"?的NodeCache,CuratorFramework會自動替你創建路徑 "/a/b";
????如果使用PathChildrenCache,對于多級路徑,即使不創建該路徑,設置監聽后CuratorFramework會主動創建整個完整路徑,比如要監聽路徑 "/A/B/C"?的PathChildrenCache,CuratorFramework會自動替你創建路徑 "/A/B/C"。
測試代碼:
啟動程序前,ZooKeeper的節點情況:
[zk: localhost:2181(CONNECTED) 2] ls /
[cluster, brokers, zookeeper, admin, isr_change_notification, log_dir_event_notification, controller_epoch, name, ha, consumers, latest_producer_id_block, config]
節點中并不包含"/A"和"/a"這兩個。
啟動程序后,ZooKeeper的節點情況:
[zk: localhost:2181(CONNECTED) 3] ls /
[cluster,?a, A, brokers, zookeeper, admin, isr_change_notification, log_dir_event_notification, controller_epoch, name, ha, consumers, latest_producer_id_block, config]
再查看其具體路徑:
[zk: localhost:2181(CONNECTED) 4] get /a/b
cZxid = 0x125b
ctime = Sun Sep 09 12:43:02 GMT+08:00 2018
mZxid = 0x125b
mtime = Sun Sep 09 12:43:02 GMT+08:00 2018
pZxid = 0x125b
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0
[zk: localhost:2181(CONNECTED) 5] get /a/b/c
Node does not exist: /a/b/c
[zk: localhost:2181(CONNECTED) 6] get /A/B/C
cZxid = 0x125e
ctime = Sun Sep 09 12:43:02 GMT+08:00 2018
mZxid = 0x125e
mtime = Sun Sep 09 12:43:02 GMT+08:00 2018
pZxid = 0x125e
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0
可以看出,確實和結論一樣。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的ZooKeeper第三方客户端CuratorFramework简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一段python3服务端及客户端的例子
- 下一篇: Android Webview H5 秒