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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

004_ZooKeeper客户端基础命令

發布時間:2025/4/17 编程问答 69 豆豆
生活随笔 收集整理的這篇文章主要介紹了 004_ZooKeeper客户端基础命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 節點類型

1.1. PERSISTENT: 持久節點, 默認創建的就是持久節點。

1.2. PERSISTENT_SEQUENTIAL: 持久序號節點。創建節點時, zookeeper會在路徑上加上序號作為后綴。非常適合用于分布式鎖、分布式選舉等場景。創建時添加-s參數即可。

1.3. EPHEMERAL: 臨時節點, 不可在擁有子節點。臨時節點會在客戶端會話斷開后自動刪除。適用于心跳, 服務發現等場景。創建時添加參數-e即可。

1.4. EPHEMERAL_SEQUENTIAL: 臨時序號節點, 不可在擁有子節點。與持久序號節點類似, 不同之處在于EPHEMERAL_SEQUENTIAL是臨時的, 會在會話斷開后刪除。創建時需要同時添加-e -s。

2. 節點屬性

2.1. cZxid = 0x0, 創建節點的事務id。

2.2. ctime = Thu Jan 01 08:00:00 CST 1970, 創建節點時的時間。

2.3. mZxid = 0x0, 最后修改節點時的事務id。

2.4. mtime = Thu Jan 01 08:00:00 CST 1970, 最后修改節點時的時間。

2.5. pZxid = 0x0, 表示該節點的子節點列表最后一次修改的事務id, 添加子節點或刪除子節點就會影響子節點列表, 但是修改子節點的數據內容則不影響該id(注意, 只有子節點列表變更了才會變更pzxid, 子節點內容變更不會影響pzxid)。

2.6. cversion = 0, 子節點版本號, 子節點每次修改版本號加1。子節點的添加或刪除該版本都會增加, 但是修改子節點不會影響該版本(只統計直接子節點的數量)。

2.7. dataVersion = 0, 數據版本號, 數據每次修改該版本號加1。

2.8. aclVersion = 0, 權限版本號, 權限每次修改該版本號加1。

2.9. ephemeralOwner = 0x0, 創建臨時節點的會話的sessionId(如果該節點是持久節點, 那么這個屬性值為0)。

2.10. dataLength = 17, 該節點的數據長度。

2.11. numChildren = 0, 該節點擁有子節點的數量(只統計直接子節點的數量)。

3. ACL權限設置

3.1. ACL全稱為Access Control List(訪問控制列表), 用于控制資源的訪問權限。ZooKeeper使用ACL來控制對其znode的防問。基于scheme:id:permission的方式進行權限控制。scheme表示授權模式, id模式對應值, permission即具體的增刪改權限位。

3.2. scheme認證模型

3.3. permission權限位

4. whoami命令

4.1. whoami命令顯示自身用戶名稱。

5. version命令

5.1. version命令查看ZooKeeper版本信息。

6. history命令

6.1. history命令查看執行的歷史記錄。

7. close命令

7.1. close命令關閉當前會話。

8. connect命令

8.1. connect命令連接指定Zookeeper服務。

8.2. 格式: connect host:port。

9. quit命令

9.1. quit命令退出客戶端。

10. ls命令

10.1. ls命令用于查看某個路徑下目錄列表。

10.2. 格式: ls [-s] [-w] [-R] path。

10.3. -s 查看節點狀態信息。

10.4. -w 添加監聽, 監聽子節點和本節點的變化(增/刪)。

10.5. -R 遞歸查看所有子節點。

10.6. path代表路徑。

11. stat命令

11.1. stat命令用于查看節點狀態信息。

11.2. 格式: stat [-w] path。

11.3. -w 監聽節點自身的變化。

11.4. path代表路徑。

12. addauth命令

12.1. addauth命令添加認證用戶。

12.2. 格式: addauth digest username:password。

13. create命令

13.1. create命令用于創建節點并賦值。

13.2. 格式: create [-s] [-e] [-c] [-t ttl] path [data] [acl]。

13.3. -s 代表順序節點。

13.4. -e 代表臨時節點。

13.5. -c ZooKeeper具有容器znodes的概念。容器znodes是特殊用途的znode, 可用于諸如領導者, 鎖等配方。當刪除容器的最后一個子代時, 容器將成為服務器將來要刪除的候選對象。給定此屬性, 您應該準備在容器znodes中創建子級時獲取KeeperException.NoNodeException。即, 容器znodes內創建子znode時, 請始終檢查KeeperException.NoNodeException并在發生時重新創建容器znode。

13.6. -t ttl 創建PERSISTENT或PERSISTENT_SEQUENTIAL znode時, 可以選擇為znode以毫秒為單位設置TTL。如果znode在TTL內未修改且沒有子代, 它將成為服務器將來某個時候要刪除的候選者。

13.7. path代表路徑。

13.8. data需要存儲的數據。

13.9. acl 訪問權限相關, 默認是world, 相當于全世界都能訪問。

13.10. world模式中anyone是唯一的值, 表示所有人。

13.11. 我們想通過一個ip地址為192.168.25.138的客戶端訪問一個znode。那么, 我們需要為znode設置一個ACL, 鑒權方式使用ip鑒權方式, 鑒權方式的id為192.168.25.138, 所有的權限都有, 那么ACL的格式就是ip:192.168.25.138:w。

13.12. auth密碼明文設置(需要先添加認證用戶)

13.13. digest密碼密文設置

13.13.1. digest需要密鑰, 通過sha1與base64組合加密碼生成, 通過echo -n <用戶名>:<密碼> | openssl dgst -binary -sha1 | openssl base64命令生成。

13.13.2. digest即用戶名:密碼這種方式認證, 這也是業務系統中最常用的。

14. 超級管理員

14.1. 生成超級管理員密鑰

14.2. 在zookeeper服務端的zkEnv.sh環境變量中加入以下參數, 開啟超級用戶, 重啟zookeeper服務端

14.3. 超級管理員登錄

14.4. 超級管理員可以刪除帶權限的節點

15. get命令

15.1. get命令用于獲取節點數據和狀態信息。

15.2. 格式: get [-s] [-w] path。

15.3. -s 查看節點狀態信息。

15.4. -w 監聽本節點數據的變化。

15.5. path代表路徑。

16. set命令

16.1. set命令用于修改節點存儲的數據。

16.2. 格式: set [-s] [-v version] path data。

16.3. -s 查看節點狀態信息。

16.4. -v dataVersion的版本號。

16.5. path代表路徑。

16.6. data需要存儲的數據。

17. getAcl命令

17.1. getAcl查看節點ACL權限。

17.2. 格式: getAcl [-s] path。

17.3. -s 查看節點狀態信息。

17.4. path代表路徑。

18. setAcl命令

18.1. setAcl命令為節點設置ACL權限。

18.2. 格式: setAcl [-s] [-v version] [-R] path acl。

18.3. -s 查看節點狀態信息。

18.4. -v aclVersion的版本號。

18.5. -R 遞歸設置所有子節點。

18.6. path代表路徑。

18.7. acl 訪問權限。

19. deleteall命令?

19.1. deleteall命令刪除路徑及所有子節點。

19.2. 格式: deleteall path。

20. delete命令

20.1. delete命令用于刪除某節點。

20.2. 格式: delete [-v version] path。

20.3. -v dataVersion的版本號。

20.4. path代表路徑。

21. getAllChildrenNumber命令

21.1. getAllChildrenNumber命令查看所有子節點數量。

21.2. 格式: getAllChildrenNumber path。

22. addWatch命令

22.1. addWatch命令添加監聽。

22.2. 格式: addWatch [-m mode] path。

22.3. -m mode的值persistent, 本節點創建/刪除和狀態變化以及監聽的變化的監聽。

22.2. -m mode的值persistent_recursive, 本節點以及所有子孫節點的創建/刪除和狀態變化以及監聽的變化的監聽。默認值是persistent_recursive。

23. removewatches命令

23.1. removewatches命令刪除指定監聽。

23.2. 格式: removewatches path。

24. printwatches命令

24.1. printwatches命令是否打印監聽事件。

24.2. 格式: printwatches on|off。

25. sync命令

25.1. sync命令強制同步節點。

25.2. 格式: sync path。

26. redo命令

26.1. redo命令重復執行命令, history中命令編號確定。

26.2. 格式: redo cmdno。

27. setquota命令

27.1. setquota命令設置節點限額。

27.2.?格式: setquota -n|-b|-N|-B val path。

27.3. -n 子節點數。

27.4. -b 字節數。

28. listquota命令

28.1. listquota命令查看節點限額。

28.2. listquota path。

29. delquota命令

29.1. delquota命令刪除節點限額。

29.2. delquota [-n|-b|-N|-B] path。

29.3. -n 子節點數。

29.4. -b 字節數。

30. config命令

30.1.?config命令查看集群配置, 單機沒有信息。

30.2.?格式: config [-c] [-w] [-s]。

30.3.?-c 它只輸出與當前配置相對應的版本和客戶端連接字符串。

30.4.?-s 用于顯示znode的統計信息。

30.5.?-w 用于在znode上設置監視。

31.?reconfig命令

31.1.?reconfig命令添加/刪除/修改新機器到zookeeper集群

31.2.?格式: reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]。

31.3.?使用?reconfig命令, 需要reconfigEnabled=true的配置。

31.4.?添加reconfigEnabled=true的配置

31.5.?超級管理員用戶或者有寫/zookeeper/config權限的用戶才能操作集群

31.6.?reconfig?-members指定成員信息

31.7.?reconfig?-file path是指定一個新文件, 新文件配置集群信息。

32. getEphemerals命令

32.1. getEphemerals命令查詢臨時節點。

32.2. 格式: getEphemerals path。

總結

以上是生活随笔為你收集整理的004_ZooKeeper客户端基础命令的全部內容,希望文章能夠幫你解決所遇到的問題。

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