一、znode
zookeeper操作和维护的数据节点,称为znode。其采用类似文件系统的层级树状结构进行管理。
如果znode节点包含数据则存储为字节数组。
znode文件名称不能重复。
数据模型
节点类型
- PERSISTENT:持久,需手动删除
- PERSISTENT_SEQUENTIAL:持久有序,与PERSISTENT 类似,node名自增
- EPHEMERAL:临时,客户端session失效会自动删除节点,没有子节点
- EPHEMERAL_SEQUENTIAL:临时有序,同EPHEMERAL,node名自增
管理
创建
create [-e] /NODE_NAME DATA
# -e参数为创建临时节点,如果不带参数则创建持久节点
删除
delete /NODE_NAME
修改
set /NODE_NAME
查询状态
get /NODE_NAME
状态属性说明
状态属性 | 说明 |
---|---|
czxid | 节点创建时的zxid |
mzxid | 节点最新一次更新发生时的zxid |
ctime | 节点创建时的时间戳 |
mtime | 节点最新一次更新发生时的时间戳 |
dataVersion | 节点数据的更新次数 |
cversion | 其子节点的更新次数 |
aclVersion | 节点ACL(授权信息)的更新次数 |
ephemeralOwner | 如果该节点为ephemeral节点, ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是ephemeral节点, ephemeralOwner值为0. 至于什么是ephemeral节点 |
dataLength | 节点数据的字节数 |
numChildren | 子节点个数 |
二、Watcher(事件监听器)
zookeeper允许用户在指定节点上注册一些watcher,并且在一些特定事件触发的时候,zk服务端会讲事件通知到客户端。该机制是zk实现分布式协调服务的重要特性
状态
三、ACL(Access Control List)
类型:
- world:默认方式,相当于全世界都能访问
- auth:代表已经认证通过的用户(cli中可以通过addauth
- digest user:pwd 来添加当前上下文中的授权用户
- digest:即用户名:密码这种方式认证,这也是业务系统中最常用的
- ip:使用Ip地址认证
ACL支持权限:
- CREATE: 能创建子节点
- READ:能获取节点数据和列出其子节点
- WRITE: 能设置节点数据
- DELETE: 能删除子节点
- ADMIN: 能设置权限