1、数据模型
Zookeeper的数据模型和文件系统类似,每一个节点称为znode,是zookeepper的最小数据单元,每一个znode上都可以保存数据和挂载节点,
从而构成一个层次化的属性结构:
1) 持久化节点 :节点创建后会一直存在Zookeeper的服务器上,知道主动进行删除
2) 持久化有序节点: 每个节点都会为他的一级子节点维护一个顺序
3) 临时节点 : 临时节点的生命周期和客户端的会话保持一致,当客户端的会话失效,该节点自动清理
(但是我们进行删除操作后立即看数据还会存在一段时间,重试机制)
4) 临时有序节点:在临时节点增加有序特性
2、会话机制
会经历的过程: NOT_CONNECTED CONNECTING CONNECTED CLOSED
3、常用命令;
1、创建节点 : create [-s] [-e] path data acl
-s 表示节点是否有序
-e 表示节点为临时节点,默认情况下会创建持久化节点
2、获取节点数据:get path [watch]
3、设置节点数据:set path data [version]
4、删除节点:delete path [version]
4、stat 信息说明:
cversion = 0 子节点的版本号
aclVersion = 0 acl的版本号,修改节点权限
dataVersion = 1 表示单签节点数据的版本号
czxid = 2 节点被临时创建时的事务ID
mzxid 节点最后一次被更新的事务ID
pzxid 当前节点下的子节点最后一次被修改时的事务ID
ctime 创建时间
mtime 修改时间
ephemeralOwner 创建临时节点时候的一个sessionId(不是临时节点时:0x0)
dataLength 数据长度
numChildren 子节点数
5、[version] 是乐观索,类似于数据库的乐观索的数据控制版本号
6、Watcher:Zookeeper提供了分布式数据发布、订阅,允许客户端向服务器注册一个watcher监听。当服务器端的节点触发指定事件的时候触发Watcher,
服务器端会想客户端发送一个事件通知,但是,watcher的通知是一次性的,一旦触发通知后watcher就失效
7、ACL:Zookeeper提供了控制节点访问控制的功能,用于有效的保证zookeeper的数据的安全性,避免误操作导致,,,
操作权限有:CREATE READ WRITE DELETE ADMIN