数据模型
ZooKeeper 提供的命名空间和标准的Linux文件系统是很类似的。每个数据节点都存储在 ZooKeeper 命名空间的相应‘目录下’。
每个数据节点都具有以下的属性:
属性 |
说明 |
cZxid |
数据节点创建时的事务ID |
ctime |
数据节点创建时间 |
mZxid |
数据节点被修改时的事务ID |
mtime |
数据节点修改时间 |
pZxid |
数据节点的子节点最后一次被修改时的事务ID |
cversion |
子节点的更改次数 |
dataVersion |
节点数据的更改次数 |
aclVersion |
节点 ACL 的更改次数 |
ephemeralOwner |
如果节点是临时节点,则表示创建该节点会话的 SessionID;如果是持久节点则为0x0 |
dataLength |
数据内容的长度 |
numChildren |
数据节点当前的子节点个数 |
CLI
1
| ./zkCli.sh -server <ip>:<port>
|
1
| create [-s] [-e] [-c] [-t ttl] path [data] [acl]
|
1
| set [-s] [-v version] path data
|
参数说明:
参数 |
说明 |
-w |
注册(观察数据变化) |
-e |
临时数据(重启或者超时消失) |
-s |
含有序列(补充编号) |
-R |
递归 |
ACL
可以使用下面的命令来配置 ACL
1
| setAcl [-s] [-v version] [-R] path acl
|
acl 的结构如下:
授权模式 |
描述 |
world |
只有一个用户: anyone,代表登录的所有人(默认) |
ip |
IP地址认证 |
auth |
使用已经添加认证的用户认证 |
digest |
使用“用户名:密码”的方式认证 |
权限 |
具体权限 |
描述 |
create |
c |
创建 |
delete |
d |
删除子节点 |
read |
r |
读取节点数据和显示子节点 |
write |
w |
设置节点数据 |
a |
a |
可以管理权限 |
除此之外还可以
注:在使用 auth 模式的时候需要先登录然后在配置权限。