Zookeeper 客户端命令

zookeeper 的客户端命令用于在 zookeeper 服务上执行相应操作。

执行 zookeeper 命令,首先要打开一个新的 session 会话,进入终端。

$ sh zkCli.sh

 

1. ls 命令

ls 命令用于查看某个路径下目录列表。

格式:

ls path
  • path:代表路径。
以下实例查看 /codebaoku 节点:
$ ls /codebaoku

 

2. ls2 命令

ls2 命令用于查看某个路径下目录列表,它比 ls 命令列出更多的详细信息。

格式:

ls2 path
  • path:代表路径。
以下实例查看 /codebaoku 节点:
$ ls2 /codebaoku

 

3. get 命令

get 命令用于获取节点数据和状态信息。

格式:

get path [watch]
  • path:代表路径。
  • [watch]:对节点进行事件监听。

以下实例查看同时开启两个终端。

终端一:

$ get /codebaoku watch

在终端二对此节点进行修改:

$ set /codebaoku 1

终端一自动显示 NodeDataChanged 事件:

 

4. stat 命令

stat 命令用于查看节点状态信息。

格式:

stat path [watch]
  • path:代表路径。
  • [watch]:对节点进行事件监听。

以下实例查看 /codebaoku 节点状态:

$ stat /codebaoku

 

5. create 命令

create 命令用于创建节点并赋值。

格式:

create [-s] [-e] path data acl
  • [-s] [-e]:-s 和 -e 都是可选的,-s 代表顺序节点, -e 代表临时节点,注意其中 -s 和 -e 可以同时使用的,并且临时节点不能再创建子节点。
  • path:指定要创建节点的路径,比如 /codebaoku
  • data:要在此节点存储的数据。
  • acl:访问权限相关,默认是 world,相当于全世界都能访问。

以下实例添加临时顺序节点:

$ create -s -e /codebaoku 0

创建的节点既是有序,又是临时节点。

 

6. set 命令

set 命令用于修改节点存储的数据。

格式:

set path data [version]
  • path:节点路径。
  • data:需要存储的数据。
  • [version]:可选项,版本号(可用作乐观锁)。

以下实例开启两个终端,也可以在同一终端操作:

$ get /codebaoku

下图可见,只有正确的版本号才能设置成功:

$ set /codebaoku 0 1
$ set /codebaoku 0 2
$ set /codebaoku 0 10
$ set /codebaoku 0 6

 

7. delete 命令

delete 命令用于删除某节点。

格式:

delete path [version]
  • path:节点路径。
  • [version]:可选项,版本号(同 set 命令)。

以下实例删除 /codebaoku 节点的子节点:

$ ls /codebaoku
$ delete /codebaoku/child
$ get /codebaoku/child

zookeeper 支持一些特定的四字命令进行交互,用于获取 zookeeper 服务的当前状态及相关信息,用户可以通过客户端的 telenet 或者 nc(netcat) 向 zookeeper 提交相应的命令。1. 四字命令格式:echo [command] | nc [ip] [port]。2. 常用四字命令:conf 3.3.0版本引入的。打印出服务相关配置的详细信息。