日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

4. ZooKeeper 基本操作

發布時間:2023/12/9 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4. ZooKeeper 基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ZooKeeper的數據模型及其API支持以下九個基本操作:

操作描述
create在ZooKeeper命名空間的指定路徑中創建一個znode
delete從ZooKeeper命名空間的指定路徑中刪除一個znode
exists檢查路徑中是否存在znode
getChildren獲取znode的子節點列表
getData獲取與znode相關的數據
setData將數據設置/寫入znode的數據字段
getACL獲取znode的訪問控制列表(ACL)策略
setACL在znode中設置訪問控制列表(ACL)策略
sync將客戶端的znode視圖與ZooKeeper同步

我們來使用ZooKeeper Java shell對上面中提到的ZooKeeper操作進行演示:

  • 用ThisIsTheRootNode作為數據創建一個名為root的znode:
  • [zk: localhost(CONNECTED) 0] create /root "ThisIsTheRootNode" Created /root
  • 獲取剛創建的root的znode的內容:
  • [zk: localhost(CONNECTED) 1] get /root "ThisIsTheRootNode" …… …… …… ……
  • 用ThisIsChild-1作為數據為root創建一個名為child-1的子節點:
  • [zk: localhost(CONNECTED) 2] create /root/child-1 "ThisIsChild-1" Created /root/child-1
  • 用ThisIsChild-2作為數據為root創建一個名為child-2的子節點:
  • [zk: localhost(CONNECTED) 3] create /root/child-2 "ThisIsChild-2" Created /root/child-2
  • 列出root的子節點:
  • [zk: localhost(CONNECTED) 4] ls /root [child-2, child-1]
  • 獲取root的訪問控制列表:
  • [zk: localhost(CONNECTED) 5] getAcl /root 'world,'anyone : cdrwa
  • 由于root擁有2個子節點,所以不允許刪除root:
  • [zk: localhost(CONNECTED) 6] delete /root Node not empty: /root
  • 刪除子節點child-1:
  • [zk: localhost(CONNECTED) 7] delete /root/child-1
  • 刪除子節點child-2:
  • [zk: localhost(CONNECTED) 8] delete /root/child-2
  • 列出root的內容:
  • [zk: localhost(CONNECTED) 9] ls2 /root [] …… …… …… ……
  • 刪除root:
  • [zk: localhost(CONNECTED) 10] delete /root

    除了上述描述的操作外,ZooKeeper還支持使用稱為multi的操作對znodes進行批量更新。 這將多個原始操作組合在一起成為一個單元。 一個multi操作本質上也是原子的,這意味著要么所有的更新成功,要么整個更新整個失敗。

    ZooKeeper不允許部分寫入或讀取znode數據。 設置znode的數據或讀取時,znode的內容將被替換或完全讀取。 ZooKeeper中的更新操作(如delete或setData操作)必須指定正在更新的znode的版本號。 版本號可以通過使用exists()方法調用來獲得。 如果指定的版本號與znode中的版本號不匹配,則更新操作將失敗。 另外,需要注意的另一件重要的事情是ZooKeeper中的更新是非阻塞(non-blocking)操作。

    ZooKeeper中的讀寫操作如下圖所示:

    從前面的圖片中,需要注意這些操作兩個關鍵地方:

    • Read requests:這些在客戶端當前連接的ZooKeeper服務器上進行局部處理
    • Write requests:這些被轉發給領導者,并在生成響應之前通過多數協商一致

    轉載于:https://www.cnblogs.com/IcanFixIt/p/7824786.html

    總結

    以上是生活随笔為你收集整理的4. ZooKeeper 基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。