使用经验
基本客户端命令
ls /node
查看节点的子节点信息,注意ls后必须跟节点名get /node
查看节点存储的数据和一些状态信息
create /node data
创建节点,后面跟着节点存储的数据,默认创建的是持久非顺序节点;通过添加-e -s
参数可以创建临时节点和顺序节点;注意后面需要跟着节点的数据,否则不会创建delete /node [version]
删除节点,只能删除空节点,若要删除含有子节点的,需要用rmr /node
set /node data
修改节点数据信息
节点类型
- 持久化节点:即使客户端断开,节点依然存在,除非主动删除
- 临时节点:客户端断开后节点删除,区分持久和临时节点可以通过
get
查看节点信息,如果empherallOwner字段为0则是持久节点,不为0则是临时节点,代表创建者的会话ID - 顺序/非顺序节点:持久和临时节点都有顺序/非顺序节点;顺序节点会在节点后面加上一串递增数据
- 注意,临时节点下面不能有其他节点;持久化节点下可以有临时节点和持久节点
监听器
- zk的监听器是一次性的,这意味着如果设置监听器得到响应之后,监听器就取消了
- 鉴于如此,一般设置监听器的思路是,设置好后,当得到响应时,调用get方法获取新的节点信息同时设置新监听器;即可实现循环监听