ZooKeeper 客戶端: GUI+命令行(史上最全)

文章很長,建議收藏起來,慢慢讀! 瘋狂創客圈爲小夥伴奉上如下珍貴的學習資源:html


推薦: 瘋狂創客圈 高質量 博文

高併發 必讀 的精彩博文
nacos 實戰(史上最全) sentinel (史上最全+入門教程)
Zookeeper 分佈式鎖 (圖解+秒懂+史上最全) Webflux(史上最全)
SpringCloud gateway (史上最全) TCP/IP(圖解+秒懂+史上最全)
10分鐘看懂, Java NIO 底層原理 Feign原理 (圖解)
更多精彩博文 ..... 請參見【 瘋狂創客圈 高併發 總目錄

史上最全 Java 面試題 28 專題 總目錄

精心梳理、吐血推薦、史上最強、建議收藏 阿里、京東、美團、頭條.... 隨意挑、橫着走!!!
1.Java算法面試題(史上最強、持續更新、吐血推薦) 2.Java基礎面試題(史上最全、持續更新、吐血推薦)
3.JVM面試題(史上最強、持續更新、吐血推薦) 四、架構設計面試題 (史上最全、持續更新、吐血推薦)
五、Spring面試題 專題 六、SpringMVC面試題 專題
7.SpringBoot - 面試題(史上最強、持續更新) 八、Tomcat面試題 專題部分
9.網絡協議面試題(史上最全、持續更新、吐血推薦) 十、TCP/IP協議(圖解+秒懂+史上最全)
11.JUC併發包與容器 - 面試題(史上最強、持續更新) 十二、設計模式面試題 (史上最全、持續更新、吐血推薦)
13.死鎖面試題(史上最強、持續更新) 15.Zookeeper 分佈式鎖 (圖解+秒懂+史上最全)
1四、Redis 面試題 - 收藏版(史上最強、持續更新) 1六、Zookeeper 面試題(史上最強、持續更新)
1七、分佈式事務面試題 (史上最全、持續更新、吐血推薦) 1八、一致性協議 (史上最全)
1九、Zab協議 (史上最全) 20、Paxos 圖解 (秒懂)
2一、raft 圖解 (秒懂) 2六、消息隊列、RabbitMQ、Kafka、RocketMQ面試題 (史上最全、持續更新)
22.Linux面試題(史上最全、持續更新、吐血推薦) 2三、Mysql 面試題(史上最強、持續更新)
2四、SpringCloud 面試題 - 收藏版(史上最強、持續更新) 2五、Netty 面試題 (史上最強、持續更新)
2七、內存泄漏 內存溢出(史上最全) 2八、JVM 內存溢出 實戰 (史上最全)

前言:

本文介紹 ZooKeeper 客戶端,包含兩種:java

  • ZooKeeper GUI 客戶端
  • zkClient 客戶端命令詳解

ZooKeeper GUI 客戶端

1. 概述

斷斷續續嘗試過不一樣的 ZooKeeper GUI 客戶端,用着都不是很順手。node

閒逛 GitHub 的時候,無心中發現了 PrettyZoo 項目,一個基於 Apache Curator + JavaFX 實現的 ZooKeeper GUI 客戶端。git

  • 可同時管理多個 ZooKeeper 鏈接
  • ZooKeeper 節點數據實時同步
  • 支持 ZooKeeper 節點搜索,高亮
  • 支持簡單的 ACL,以及 ACL 語法檢查
  • 支持 SSH Tunnel
  • 支持配置導入和導出

簡單上手了下,好看又好用。準備推薦給 ? 芳~程序員

img

界面演示github

2. 安裝 PrettyZoo

PrettyZoo 提供了操做系統 windows 和 macOS 的客戶端,可訪問 https://github.com/vran-dev/PrettyZoo/releases 地址下載。下載完成,點擊安裝便可。面試

友情提示:macOS 客戶端若是提示 「Catalina xxx.app已損壞,沒法打開,你應該將它移到廢紙簍解決方法」,胖友能夠閱讀 https://www.macwk.com/article/mac-catalina-1015-file-damage 文章解決。算法

3. 快速體驗PrettyZoo

PrettyZoo 的使用很是簡單,本小節主要提供界面的演示。sql

3.1 鏈接 ZooKeeper Server

img

鏈接 ZooKeeper Server編程

3.2 搜索 ZooKeeper 節點

img

搜索 ZooKeeper 節點

3.3 添加 ZooKeeper 節點

img

添加 ZooKeeper 節點

3.4 刪除 ZooKeeper 節點

img

刪除 ZooKeeper 節點

目前使用的是 v0.3.1 版本,刪除暫時沒有二次確認功能,因此操做必定要當心。

zkClient 客戶端命令詳解

想要用zkClient連接zookeeper,首先執行以下命令,鏈接到zookeeper server

./zkCli.sh -server localhost:2181

help命令

help命令用於查詢客服端所支持的所用的命令,執行help,輸入以下:

ZooKeeper -server host:port cmd args
    stat path [watch]
    set path data [version]
    ls path [watch]
    delquota [-n|-b] path
    ls2 path [watch]
    setAcl path acl
    setquota -n|-b val path
    history 
    redo cmdno
    printwatches on|off
    delete path [version]
    sync path
    listquota path
    get path [watch]
    create [-s] [-e] path data acl
    addauth scheme auth
    quit 
    getAcl path
    close 
    connect host:port

connect命令

  鏈接zk服務端,與close命令配合使用能夠鏈接或者斷開zk服務端

connect 127.0.0.1:2181

close命令

  close命令用於關閉與服務端的連接

get命令

  get命令用於獲取節點的信息,注意節點的路徑必須是以/開頭的絕對路徑。如get /

cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x1469
cversion = 3
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 4

其中:

cZxid:節點建立時的zxid

ctime:節點建立時間

mZxid:節點最近一次更新時的zxid

mtime:節點最近一次更新的時間

cversion:子節點數據更新次數

dataVersion:本節點數據更新次數

aclVersion:節點ACL(受權信息)的更新次數

ephemeralOwner:若是該節點爲臨時節點,ephemeralOwner值表示與該節點綁定的session id. 若是該節點不是臨時節點,ephemeralOwner值爲0

dataLength:節點數據長度,本例中爲hello world的長度

numChildren:子節點個數

stat命令

stat命令用於查看節點的狀態信息,如stat /

cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x1469
cversion = 3
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 4

該命令的結果參數說明同get命令

set命令

  set命令用於設置節點的數據,如:

set /usergrid hellUsergrid

ls命令

  ls命令用於獲取路徑下的節點信息,注意路徑爲絕對路徑,如:ls /storm

[assignments, storms, errors, supervisors, workerbeats]

ls2命令

  ls2命令是ls命令的加強版,比ls命令多輸出本節點信息,如:ls2 /storm

[assignments, storms, errors, supervisors, workerbeats]
cZxid = 0x1469
ctime = Tue Nov 14 11:32:09 CST 2017
mZxid = 0x1469
mtime = Tue Nov 14 11:32:09 CST 2017
pZxid = 0x1470
cversion = 5
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 5

listquota命令

  listquota命令用於顯示配額,如listquota /storm

absolute path is /zookeeper/quota/storm/zookeeper_limits
quota for /storm does not exist.

setquota命令

  setquota命令用於設置節點個數以及數據長度的配額,如:

`setquota –n ``4` `/zookeeper/node 設置/zookeeper/node子節點個數最大爲``4``setquota –b ``100` `/zookeeper/node 設置/zookeeper/node節點長度最大爲``100`

delquota命令

  delquota命令用於刪除配額,-n爲子節點個數,-b爲節點數據長度,如:delquota –n 2

history命令

  history用於列出最近的命令歷史,能夠和redo配合使用。如history  

12 - get /usergrid
13 - help
14 - ls /
15 - ls /storm
16 - ls2 /storm
17 - help
18 - listquota /storm
19 - listquota /zookeeper
20 - help
21 - history
22 - history

redo命令

  redo命令用於再次執行某個命令,使用方式爲redo cmdid 如 redo 20

  常與history配合使用

create命令

  create命令用於建立節點,其中-s爲順序充點,-e臨時節點 

create /zookeeper/node1"test_create" world:anyone:fdsfds

delete命令

  delete命令用於刪除節點,如delete /nodeDelete

addauth命令

  addauth命令用於節點認證,使用方式:如addauth digest username:password

setAcl命令

  setAcl命令用於設置節點Acl

  Acl由三部分構成:1爲scheme,2爲user,3爲permission,通常狀況下表示爲scheme🆔permissions

getAcl命令

  獲取節點的Acl,如getAcl /node1

scheme和id

world: 它下面只有一個id, 叫anyone, world:anyone表明任何人,zookeeper中對全部人有權限的結點就是屬於world:anyone的

auth: 它不須要id, 只要是經過authentication的user都有權限(zookeeper支持經過kerberos來進行authencation, 也支持username/password形式的authentication)

digest: 它對應的id爲username:BASE64(SHA1(password)),它須要先經過username:password形式的authentication

ip: 它對應的id爲客戶機的IP地址,設置的時候能夠設置一個ip段,好比ip:192.168.1.0/16, 表示匹配前16個bit的IP段

super: 在這種scheme狀況下,對應的id擁有超級權限,能夠作任何事情(cdrwa)

permissions

CREATE(c): 建立權限,能夠在在當前node下建立child node

DELETE(d): 刪除權限,能夠刪除當前的node

READ(r): 讀權限,能夠獲取當前node的數據,能夠list當前node全部的child nodes

WRITE(w): 寫權限,能夠向當前node寫數據

ADMIN(a): 管理權限,能夠設置當前node的permission

sync命令

  sync命令用於強制同步,因爲請求在半數以上的zk server上生效就表示此請求生效,那麼就會有一些zk server上的數據是舊的。sync命令就是強制同步全部的更新操做。

printwatchers命令

  printWatchers命令用於設置和顯示監視狀態,值爲on或則off

quit命令

  退出客戶端

相關文章
相關標籤/搜索