一、znone基础操作

1. 创建znode

直接在命令行输入"Create"指令就可以看到对应的帮助信息

create命令常用选项:

-e:创建临时znode。当我使用quit退出之后,重新进入znode消失

-s:创建带有编号的znode

2. 查看znode

使用ls命令查看某个znone下的子znode信息,常用选项

-w:启用监听器watch功能

-s:查看stat命令的相关信息且查看给定znode路径的子节点信息

-R:对查看znode且查看给定znode路径的子节点信息

使用get命令可以查看znode中存储的数据

-s:查看stat命令的相关信息

-w:启用监听器watch功能

3. 使用stat命令可以查看znode的元数据信息

cZxid:数据节点创建时的事物ID

ctime:数据节点创建时的时间

mZxid:数据节点最后一次更新时的事物ID

mtime:数据节点最后一次更新的时间

pZxid:数据节点的子节点最后一次被修改时的事务ID

cversion:子节点的更改次数

dataVersion:数据节点的更改次数,即维护的是一个数据版本号

aclVersion:节点的ACL的更改次数

ephemeralOwner:如果节点是临时节点,则表示创建该节点的会话SessionID,如果节点是持久节点,则该属性值为0

dataLength:数据内容的长度

numChildren:数据节点当前的子节点的数量

4. 修改znode数据

zookeeper使用set命令修改znode数据,常用命令选项如下:

-s:修改数据后,返回znode的stat信息

-v:修改数据后可以指定版本

5. 删除znode数据

zookeeper使用delete命令删除znode,要求该znode没有子znode节点

zookeeper使用deleteall命令删除包含子znode节点,生产环境中慎用,有点类似于linux的"rm -rf"指令

二、监听器案例

1.使用"get -w path"注册监听器,监听znode变化

# 设置name数据
set /name dadong

# 设置监控,注意:该监控只触发一次
get -w /name

# 当我们修改znode数据后,在当前终端触发相应的通知
set /name zhangsan

2. 使用"ls -w path"注册监听器,监听znode的子节点数量的变化

# 设置ls监控,注意:也是一次性
ls -w /name

# 修改znode数据,并没有触发监控通知
set /name dadong

# 当我们在监听的znode下创建新节点时,就会触发监听器机制
create /name/zhangsan

三、删除监听器

# get指令添加了一个监视器
get -w /name 

# 此处我又使用"removewatches"指令删除了监听器
removewatches /name  

# 当我们修改znode发现并没有触发监听器
set /name "dadong"