Zookeeper 数据模型 node
Zookeeper 拥有着相似文件系统的命名空间,惟一的区别是在命名空间下的每个节点都有数据和他关联 服务器
Znodes session
zookeeper 的节点 znode, znode 维护着一些列状态信息 包含数据的版本,acl 权限修改信息,时间戳 服务器返回数据和客户端操做信息都是携带版本信息的 若是版本信息不一致的话那个将会失败(有点像乐观锁实现) spa
TIPS 这种处理行为可用户覆盖处理 生命周期
znode 的几个特征 事件
watches get
客户点能够对znode 添加监听器, 当触发的时候 服务器会给客户端一个通知 it
Data Access io
数据存储在节点,数据特性是 原子特性的(不可再分割),每个节点都有相应的ACL(Access Control List) 设定。zookeeper 节点存储的数据主要起协调各节点工做 zookeeper
Time in zookeeper
zookeeper 有多种跟踪方式
Zxid(ZooKeeper Transaction Id)
每个change 操做都携带着一个惟一的ZXID,若是changeA 的 zxid > changeB 的 zxid, 那么 那么changeB 将会优先发生(越小优先级越高)
Version Number(版本号)
每次change 都会修改版本号 3 个版本号
Ticks
多服务器时,使用ticks 定义时间事件,载入状态,会话超时,节点之间connection 超时等
会话超时设定 2 倍的 心跳时间
Real time
zookeeper 时间 须要你本身放进来 不适用本机时间
zookeeper 的状态信息结构
每一个节点的状态信息都是由如下数据字段组成的
czxid
建立节点的Zxid
mzxid
最后一次修改节点的Zxid
ctime
节点建立时间(毫秒级别)
mtime
节点最后修改时间(毫秒界别)
version
节点数据版本信息
cversion
子节点版本号信息
aversion
acl 版本号信息
ephemeralOwner
若是该节点是临时节点 这表示为会话ID 不然为 0
dataLength
该节点的数据长度
numChildren
该节点子节点的数量
zookeeper session
session 状态图
资料列表