常用命令
启动 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 机制