1. zookeeper特性
- 上一章讲解了怎么配置集群,涉及到了一个关键的配置文件zoo.cfg**
zoo.cfg
tickTime=2000 #client-server 通信心跳时间(单位毫秒)
initLimit=5 #leader-follower初始通信时限
syncLimit=5 #leader-follower 同步通信时限
dataDir=/tmp #数据文件保存
clientPort=2181 #客户端链接端口
数据模型
-
zookeeper的数据模型和文件系统类似,每一个节点称为:znode,是zookeeper的最小数据单元。每一个znode上都可以保存数据和挂在子节点。从而构成一个层次化的属性结构。
节点特性
- 持久化节点:节点创建后会一直存在zookeeper服务器上,直到主动删除
- 持久化序列节点:每个节点都会为它的一级子节点维护一个顺序
- 临时节点:临时节点的生命周期和客户端的==会话==保持一致。当客户端会话失效,该节点自动清理
- 临时有序节点:在临时节点上多了一个顺序特性
==临时节点不能创建子节点==
会话
Watcher
zookeeper提供了分布式数据发布/订阅,zookeeper允许客户端向服务器注册一个watcher监听。当服务端的节点触发指定事件的时候会触发watcher。服务端会向客户端发送一个事件通知。
==watcher的通知是一次性的,一旦触发一次通知后,该watcher就失效==
ACL
zookeeper提供控制节点访问权限的功能,用户有效的保证zookeeper中数据的安全性。避免误操作而导致系统出现重大事故
CREATE/READ/WRITE/DELETE/ADMIN
2. zookeeper客户端命令操作
- create [-s] [-e] path data acl
-s 表示节点是否有序
-e 表示节点是否为临时节点
默认情况下,是持久化节点
ls / 查看节点
- get path [watch]
获取指定path的信息
- set path data [version]
修改节点path对应的data
- delete path [version]
删除节点
更多命令使用help可以看到更多
state信息
cversion =0 #子节点版本号
aclVersion=0 #表示当前acl的版本号,修改节点的权限
dataVersion=1 #表示的是当前节点数据的版本号
czxid #节点被创建事务id
mzxid #节点最后一次被更新的事务ID
pzxid #当前节点下的子节点最后一次被修改时的事务ID
ctime #创建时间
mtime #修改时间
ephemeralOwner=0x0 #创建临时节点的时候,会有一个sessionId,该值存储的就是sessionId
dataLength=3 #数据值的长度
numChildren=0 #子节点总数
--黑白 20170808 0:02