使用 python 操作 zookeeper。
值得注意的是,本次 zookeeper 的版本是 3.4.14
参考资料
zookeeper配置参数
zookeeper的client基本操作
命令相关
启动
在 MacBook 下,使用
./zkServer start
在 ubuntu 中
./zkServer.sh start
关闭
在 MacBook 中
./zkServer stop
在 ubuntu 中
./zkServer.sh stop
启动客户端
在 macbook 中
./zkCli
在 ubuntu 中
./zkCli.sh
客户端命令
所谓的客户端命令就是进入 zkCli 之后的命令
列出节点
我们的根目录是 /
可以使用
ls /
查看根目录下有什么文件。
创建节点
create /ant/ant "data"
首先,zookeeper 中存储的是字节数据,并且,默认大小为 1M。
上面的意思就是,创建 /ant/ant 后面的 ant 可以理解为文件,并且,这个文件里面的数据是 data
/ant/ant 是 zookeeper 的一个节点,其中有三种节点,临时节点,顺序节点,永久节点,默认创建的是永久节点。
顺序节点
create -s /path /data
临时节点
create -e /path /data
获取数据
get /path
例如 get /ant/ant 得到的数据就是 data.
如果要创建一个长节点,比如
create /ant/test/t "data"
假设 test 不存在就会报错,所以,要先创建 /ant/test 然后创建 /ant/test/t
监控获取数据
get /path [watch] 1
例如
get /FirstZnode 1
get /FirstZnode “Mysecondzookeeper-app"
当指定的znode或znode的子数据更改时,监视器会显示通知。你只能在 get 命令中设置watch。
设置数据
set /path /data
虽然 set 可以设置数据,但是,如果遇到数据很长,也就是涉及到换行,就必须使用
./zkCli.sh -server 127.0.0.1:2181 set /dubbo/config/ "dubbo.registry.address=zookeeper://127.0.0.1:2185dubbo.metadata-report.address=zookeeper://127.0.0.1:2185"
但是,即便是这样,也很容易弄错,所以,我建议使用代码的方式解决,你可以看我下一篇的讲解。
检查状态
stat /path
移除Znode
delete /path
这个删除一个没有数据的 node
如果要递归删除有数据的 node,可以使用
rmr /path
参数说明
get 之后出现的参数说明
参数 | 说明 |
---|---|
czxid | znode创建时的zxid |
mzxid | znode的数据最后更新的zxid |
ctime | 此节点创建时来自epoch的time毫秒数 |
mtime | znode最后更新的毫秒数,来自epoch |
version | znode数据更新的版本号 |
cversion | znode子节点变更的版本号 |
aclversion | znode的ACL变更的版本号 |
ephemeralOwner | 临时节点的session id,如果不是临时节点,为0 |
dataLength | znode中挂在的数据的长度 |
numChildren | znode中子节点的个数 |