zookeeper快速入门三:zookeeper的基本操作

2024年 4月 3日 64.6k 0

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情。​

  在zookeeper的bin目录下,输入./zkServer.sh start和./zkCli.sh启动服务端和客户端,然后我们就可以进行zookeeper的基本操作了。如果是windows,请参考前面章节zookeeper快速入门一:zookeeper安装与启动

zookeeper快速入门三:zookeeper的基本操作-1

一、节点的增删改查

zookeeper节点的增删改查命令很简单,唯一需要注意的是create命令有两个参数,-s代表顺序节点,-e代表临时节点。

我们先用create /temp 123命令创建一个名为temp的znode节点,123是这个节点保存的data值。

用get /temp命令查看

zookeeper快速入门三:zookeeper的基本操作-1

如果你输入的是get temp,那么会出现Command failed: java.lang.IllegalArgumentException: Path must start with /character错误,这是因为在zookeeper中,没有相对路径的概念,所有的节点都需要用绝对路径表示,也即所有节点名称都会以“/”开头。

如果我们要创建临时节点,则给create命令增加一个-e的参数。

zookeeper快速入门三:zookeeper的基本操作-1

修改temp节点的数据,set /temp  456

再用get /temp查看

zookeeper快速入门三:zookeeper的基本操作-1

可以看到,/temp节点的数据已经从123变成了456。在zookeeper中,对于数据的修改都是全量修改,没有只修改某一部分这种说法。这也是为什么zookeeper的修改命令是set而不是update的原因。

需要注意的是,但我们修改了数据之后,可以看到mZxid(修改事务id)已经从原来的0X26变成了0x27。

如果要删除某个节点,则用delete path即可。

需要注意的是:

set path data [version]命令,如果我们多次修改,会发现  dataVersion ,也就是数据版本,在不停得发生变化(自增)如果我们在set的时候手动去指定了版本号,就必须和上一次查询出来的结果一致,否则 就会报错。

这个可以用于我们在修改节点数据的时候,保证我们修改前数据没被别人修改过。因为如果别人修改过了,我们这次修改是不会成功的

delete path [version]

删除指定节点数据,其version参数的作用于set指定一致

二、zookeeper的其他命令

2.1   ls path:列出path下的文件

与linux命令类似,ls命令用于列出给定路径下的zookeeper节点

zookeeper快速入门三:zookeeper的基本操作-1

2.2  stat path:查看节点状态

我们查看持久节点temp和临时节点short的状态,主要不同是画红线部分,从ephemeralOwner的值可以判断这个节点是持久节点还是临时节点。0X0代表的是持久节点。如果节点为临时节点,那么它的值为这个节点拥有者的session ID。

zookeeper快速入门三:zookeeper的基本操作-1

2.3  ls2 path:列出path节点的子节点及状态

我们先给temp节点创建一个child1的子节点,接着用ls2 /temp查看它的子节点和状态。

zookeeper快速入门三:zookeeper的基本操作-1

三、其他

我们可以输入-h获取zookeeper的所有命令

zookeeper快速入门三:zookeeper的基本操作-1

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论