1.5.1 连接到 ZooKeeper 服务器
# 连接到本地 ZooKeeper 服务器
# 先进入ZooKeeper容器:docker exec -it zookeeper bash
bin/zkCli.sh -server localhost:2181
 
1.5.2 基本命令
1.5.2.1 查看帮助
help
 
1.5.2.2 列出子节点
ls /
 
1.5.3 ZNode 操作
1.5.3.1 创建 ZNode
# 创建持久性 ZNode
create /my_node "Hello, ZooKeeper"
# 创建临时性 ZNode
create -e /my_ephemeral_node "This is an ephemeral node"
# 创建有序 ZNode
create -s /my_sequential_node "This is a sequential node"
 
1.5.3.2 获取 ZNode 数据
get /my_node
 
1.5.3.3 设置 ZNode 数据
set /my_node "New data"
 
1.5.3.4 删除 ZNode
delete /my_node
 
1.5.3.5 递归删除 ZNode
deleteall /my_node
 
1.5.4 监视(Watcher)
watcher事件类型:
| EventType | 触发条件 | 
|---|---|
| NodeCreated | 节点创建 | 
| NodeDeleted | 节点删除 | 
| NodeDataChanged | 节点数据修改 | 
| NodeChildrenChanged | 子节点变更 | 
Watcher事件处理:
当 ZooKeeper 服务器触发 Watcher 事件时,客户端的 Watcher 实现类中的 process 方法会被调用,并传递一个 WatchedEvent 对象。WatchedEvent 对象包含了事件类型、会话状态和路径信息。
1.5.4.1 设置数据监视
get /my_node true
 
1.5.5 其他命令
1.5.5.1 查看 ZNode 状态
stat /my_node
 
1.5.5.2 查看 ZNode 的子节点
ls /my_node
 
1.5.5.3 查看 ZNode 的 ACL(Access Control List,访问控制列表)
身份(Scheme):
world:表示任何人都可以执行操作,它只有一个身份anyone。auth:表示只有通过身份验证的用户可以执行操作。digest:表示使用 digest 算法来验证用户的身份,格式为username:base64encodedhash。ip:表示使用 IP 地址来验证用户的身份,格式为ip:address/bits。super:表示只有超级用户可以执行操作。superuser:表示只有超级用户可以执行操作。
权限位:
CREATE(c):允许创建子节点。READ(r):允许读取节点数据和子节点列表。WRITE(w):允许设置节点数据。DELETE(d):允许删除子节点。ADMIN(a):允许设置 ACL。
getAcl /my_node
 
1.5.5.4 设置 ZNode 的 ACL
setAcl /my_node world:anyone:rwcda










