?在上一篇zk中簡單玩了下api的連接創建會話,也總是留下了很多坑,就是那些引申開來,搞不明白的問題。有時候想追究起來,問題總是那么無窮無盡,有時候問題比答案更有力度吧,到最后都是些哲學問題嗎?存在的這一切,還是一切歸于虛無,小時候總是被教育要講科學,但是感覺科學怎么那么沒有溫度,不如哲學問題那么溫暖人心。
????瞎逼逼好了,這里還是寫點java api的使用吧,不如寫點代碼
文檔地址 3.5.3 :http://zookeeper.apache.org/doc/r3.5.3-beta/api/index.html
? ? 3.5.3的beta版本里面有很多個創建方法(比3.4.X又豐富了api),開始我們總是拿最簡單的那個開始,沒錯,就是第一個,這是一個同步創建的接口。
?執行的結果 很滿意
這邊的參數文檔說明
???path ?路徑,已經已經存在了,會報創建節點已經存在的從錯誤(KeeperException.NodeExists),并且zookeeper api不支持遞歸創建,就是不能在父節點不存在的情況下(KeeperException.NoNode),創建子節點,第三方的工具封裝了,可以省下很多活。
????data 數據,這個目前zookeeper只支持數組 buty[],就是說需要我們自己序列化,復雜對象可以使用第三方工具來序列化,那我想存復雜對象的場景是怎么樣的。
????acl 權限控制,這邊使用了Ids.OPEN_ACL_UNSAFE
createMode 節點mode,下面的解釋也很清晰,上面我們創建的是臨時節點,會話結束 就 die啦,還有持久型的,都有順序型,后面補上兩種帶TTL的,當沒有子節點的時候,自動刪除。
??我們看看 創建順序節點,順序總是有應用場景的
日志:
?其他都是類似的,還有一個異步創建的的
日志:
????異步創建還是方便的,其中主要是 AsyncCallback的實現,回調接口好多,不看了,其中stat是節點zhuagn狀態。
??里面就一個方法,參數的說明也在下面
????在創建的時候
????設置RequestHeader,CreateRequest和CreateResponse,這個套路很熟悉呀,不過ReplyHeader是干嘛的,暫時不知道,最后執行的就是我們io處理的
ClientCnxn對象啦。
????在cnxn里面:把數據封裝到了packet中處理,到了這一層,居然把數據統一到packet啦,這邊的注解寫的 xid只是在實際發送的地方生成。
?
有什么討論的內容,可以加我公眾號:
?
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态