- ZooKeeper是一个树形目录服务,每个节点称为ZNode,保存自己的数据和节点信息
节点分为四类:
- 持久化节点
- 临时节点
- -e
- 持久化顺序节点
- -s
- 临时顺序节点
- -es
./zkServer.sh start
./zkServer.sh stop
./zkCli.sh -server 127.0.0.1:2181
ls /
create /test abc
test下创建新的节点
create /test/{newNode} {value}
- 获取节点
- get /test
- 修改节点
- set /test jinhetech
- 删除节点
- delete /test
Zookeeper 的权限由[scheme : id :permissions]三部分组成,其中 Schemes 和 Permissions 内置的可选项分别如下:
Permissions 可选项:
- CREATE(C):允许创建子节点;
- READ(R):允许从节点获取数据并列出其子节点;
- WRITE(W):允许为节点设置数据;
- DELETE(D):允许删除子节点;
- ADMIN(A):允许为节点设置权限。
Schemes 可选项:
- world:
- 默认模式,所有客户端都拥有指定的权限,只有一个 id 选项,就是 anyone
- 组合写法为 world:anyone:[permissons]
- auth:
- 只有经过认证的用户才拥有指定的权限。
- 通常组合写法为 auth:user:password:[permissons]
- 需要先进行登录,之后采用 auth 模式设置权限时,user 和 password 都将使用登录的用户名和密码;
- digest:
- 只有经过认证的用户才拥有指定的权限。
- 通常组合写法为 auth:user:BASE64(SHA1(password)):[permissons]
- 密码必须通过 SHA1 和 BASE64 进行双重加密;
- ip:
- 限制只有特定 IP 的客户端才拥有指定的权限。
- 通常组成写法为 ip:182.168.0.168:[permissions];
- super:
- 代表超级管理员,拥有所有的权限,需要修改 Zookeeper 启动脚本进行配置。
auth在网络中明文传输,方便本地测试
digest加密传输,不方便测试但安全
[zk: 127.0.0.1:2181(CONNECTED) 9] addauth digest hmz:hmz
[zk: 127.0.0.1:2181(CONNECTED) 10] create /test
Created /test
[zk: 127.0.0.1:2181(CONNECTED) 11] ls /test
[]
[zk: 127.0.0.1:2181(CONNECTED) 12] setAcl /test auth:hmz:hmz:cdrwa
[zk: 127.0.0.1:2181(CONNECTED) 13] getAcl /test
'digest,'hmz:PO61JaA/O42zoY4FMVwuAR7HSAE=
: cdrwa
create /ip_test
setAcl ip:127.0.0.1:r