Zookeeper-客户端命令
wenking 3/13/2024 zookeeper
# 节点操作命令
1.创建节点
create [-s|-e] [-c] [-t ttl] path data [acl]
1
- -s:创建顺序节点,在节点名后自动添加递增序列号。
- -e:创建临时节点,当客户端会话结束时,节点会被自动删除。
- -c:创建容器节点(EPHEMERAL_SEQUENTIAL),即临时有序节点。
- -t ttl:设置节点存活的超时时间(仅限ZooKeeper 3.5及以上版本)。
2.查看节点内容
get -w path
1
- w: 监听节点变化
3.设置节点内容
set path data
1
4.列出节点子目录
ls path
1
5.删除节点
delete -v path
1
- v 是可选的,用于指定删除前检查的数据版本。
6.递归删除节点以其子节点
deleteall path
1
7.查看节点状态
stat path
1
# 节点权限控制命令
zk的ACL列表构成主要由3部分:[schema : id : permissions]
# ACL Scheme 类型
- world: 任何人都可以访问;id值唯一,为 anyone
- auth: 已经过身份验证的任何用户;id 一般为
username:password
的组合。 eg: admin:123 - digest: 用户名:密码哈希;id 结构为
username:password_hash
,password_hash
字段为username:password
通过base64编码后进行hash映射后的内容。 eg digest:username:passwordhash. - ip: 根据 IP 地址限制访问;id为对应客户端的ip地址,eg ip:192.168.1.2
# 权限定义
- C: Create 子节点权限。
- D: Delete 子节点权限(仅下一级节点)。
- R: Read 节点数据和子节点列表。
- W: Write 节点数据。
- A: Admin 权限,包括设置 ACL 和删除非空节点的权利。
# 例子
# 设置为 world 类型, 任何人都可以访问
setAcl /node world:anyone:cdrwa
# 设置为 auth 类型, 需要通过 addauth 认证后才能访问
setAcl /node auth:admin:123:cdrwa
# [replace] => sha1(base64(admin:123))
# 需要通过 addauth 认证后才能访问
setAcl /node digest:admin:[replace]:cdrwa
# 设置为 ip 类型,在session 连接时,必须为对于的ip 才能访问
setAcl /node ip:192.168.1.6:cdrwa
# 对于 world 类型,不需要验证;
# 对于 ip 类型,客户端建立连接的时候就可以判断当前 session 是否拥有对应的节点权限;
# 对于 digest 和 auth 类型, 通常在客户端连接后需要进行权限认证, 一个session 中 可以进行多次验证并保留之前的认证结果。
# zk 中 的认证命令格式为:[addauth digest id]
addauth digest admin:123
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18