常用命令
启动 zookeeper: ./zkServer.sh start
连接本地 zookeeper:./zkCli.sh
- ls 与 ls2:ls 只看节点,ls2 可以查看节点状态
- stat: 查看状态(ls2 = ls + stat)
- get: 获取节点数据
- create: create [-s] [-e] path data acl 创建节点
创建默认节点,非顺序,持久化的
create /imooc imooc-data
创建临时节点
create -e /imooc/tmp imooc-tmp-data
创建顺序节点
create -s /imooc/sec seq
- set path data [version]
版本号要跟节点数据的版本号一致,否则无法更新 - delete path [version]
节点状态解读
cZxid: 创建后 zk 为当前节点分配的 id
ctime: create time,节点创建时间
mZxid: 节点修改后的 id
mtime: 节点修改时间
pZxid: 子节点 id
cversion: 子节点 version,子节点数据变化时 cversion 会变化
dataversion: 当前节点的数据版本号,当当前节点数据修改后,版本号会加一
aclVersion: 访问控制列表版本,权限变化时累加
ephemeralOwner:短暂的拥有者,临时节点绑定到的 session id
dataLength:数据长度
numChildren: 子节点数
特性 - session
- 客户端与服务端的连接为一次会话
- 每个会话都会设置一个超时时间
- 心跳结束,session 过期(连接过程中,客户端会定期向服务端发送心跳指令,表明自己还存活)
- session 过期,则临时节点 znode 会被删除
- 心跳机制:客户端向服务端的 ping 包请求
- watcher 机制