Apache ZooKeeper - 节点实操常用zookeeper命令

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Apache ZooKeeper - 节点实操常用zookeeper命令

20201116001324974.png

help 查看zookeeper所支持的所有命令

[zk: localhost:2181(CONNECTED) 1] help
ZooKeeper -server host:port cmd args
  addauth scheme auth
  close 
  config [-c] [-w] [-s]
  connect host:port
  create [-s] [-e] [-c] [-t ttl] path [data] [acl]
  delete [-v version] path
  deleteall path
  delquota [-n|-b] path
  get [-s] [-w] path
  getAcl [-s] path
  history 
  listquota path
  ls [-s] [-w] [-R] path
  ls2 path [watch]
  printwatches on|off
  quit 
  reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
  redo cmdno
  removewatches path [-c|-d|-a] [-l]
  rmr path
  set [-s] [-v version] path data
  setAcl [-s] [-v version] [-R] path acl
  setquota -n|-b val path
  stat [-w] path
  sync path
Command not found: Command not found help
[zk: localhost:2181(CONNECTED) 2] 


创建zookeeper 节点命令

create [-s] [-e] [-c] [-t ttl] path [data] [acl]


中括号为可选项,没有则默认创建持久化节点

  • -s: 顺序节点
  • -e: 临时节点
  • -c: 容器节点
  • -t: 可以给节点添加过期时间,默认禁用,需要通过系统参数启用



(-Dzookeeper.extendedTypesEnabled=true, znode.container.checkIntervalMs : (仅限 Java 系统属性) 3.5.1 中的新功能:每次检查候选容器和 ttl 节点的时间间隔(以毫秒为单位)。默认值为“60000”。


创建持久化节点 create

持久化保存的节点,也是默认创建的

[zk: localhost:2181(CONNECTED) 1] create /artisan-persist  data_xxx
Created /artisan-persist


查看节点 get

[zk: localhost:2181(CONNECTED) 3] get /artisan-persist
data_xxx
[zk: localhost:2181(CONNECTED) 4]


修改节点 set

[zk: localhost:2181(CONNECTED) 4] set /artisan-persist  data_xxx_new 
[zk: localhost:2181(CONNECTED) 5] 
[zk: localhost:2181(CONNECTED) 5] 
[zk: localhost:2181(CONNECTED) 5] 
[zk: localhost:2181(CONNECTED) 5] get /artisan-persist
data_xxx_new
[zk: localhost:2181(CONNECTED) 6] 


创建持久序号节点,加参数 -s

创建时zookeeper 会在路径上加上序号作为后缀,。 非常适合用于分布式锁、分布式选举等场景。 创建时添加 -s 参数即可。

[zk: localhost:2181(CONNECTED) 11] create -s /artisan_seq
Created /artisan_seq0000000002
[zk: localhost:2181(CONNECTED) 12] 
[zk: localhost:2181(CONNECTED) 12] create -s /artisan_seq
Created /artisan_seq0000000003
[zk: localhost:2181(CONNECTED) 13] create -s /artisan_seq
Created /artisan_seq0000000004
[zk: localhost:2181(CONNECTED) 14] create -s /artisan_seq
Created /artisan_seq0000000005
[zk: localhost:2181(CONNECTED) 15] create -s /artisan_seq
Created /artisan_seq0000000006
[zk: localhost:2181(CONNECTED) 16] ls -R /
/
/artisan-persist
/artisan_seq0000000002
/artisan_seq0000000003
/artisan_seq0000000004
/artisan_seq0000000005
/artisan_seq0000000006
/zookeeper
/zookeeper/config
/zookeeper/quota
[zk: localhost:2181(CONNECTED) 17] 

创建临时节点,加参数 -e


临时节点会在客户端会话断开后自动删除。 适用于心跳,服务发现等场景。 创建时添加参数-e 即可。

创建临时节点, 断开会话 在连接将会自动删除

[zk: localhost:2181(CONNECTED) 17] create -e /artisan-e
Created /artisan-e

20201116232407227.png


[zk: localhost:2181(CONNECTED) 20] ls -R /artisan-e
/artisan-e
[zk: localhost:2181(CONNECTED) 21] 

退出重连


2020111623260791.png

临时节点没啦。。。。

我们结合日志来看一下

20201117230927468.png

20201117231003340.png

创建临时序号节点, 加参数 -s -e


与持久序号节点类似,不同之处在于EPHEMERAL_SEQUENTIAL是临时的会在会话断开后删除。 创建时添加 -e -s

语法

[zk: localhost:2181(CONNECTED) 1] create -s -e /abc
Created /abc0000000008
[zk: localhost:2181(CONNECTED) 2] create -s -e /abc
Created /abc0000000009
[zk: localhost:2181(CONNECTED) 3] create -s -e /abc
Created /abc0000000010
[zk: localhost:2181(CONNECTED) 4] create -s -e /abc
Created /abc0000000011
[zk: localhost:2181(CONNECTED) 5] create -s -e /abc
Created /abc0000000012
[zk: localhost:2181(CONNECTED) 6] ls -R /
/
/abc0000000008
/abc0000000009
/abc0000000010
/abc0000000011
/abc0000000012
/artisan-persist
/artisan_seq0000000002
/artisan_seq0000000003
/artisan_seq0000000004
/artisan_seq0000000005
/artisan_seq0000000006
/zookeeper
/zookeeper/config
/zookeeper/quota
[zk: localhost:2181(CONNECTED) 7] 


创建容器节点 -c

容器节点主要用来容纳字节点,如果没有给其创建子节点,容器节点表现和持久化节点一样,如果给容器节点创建了子节点,后续又把子节点清空,容器节点也会被zookeeper删除。

[zk: localhost:2181(CONNECTED) 14] create -c /artisan-c
Created /artisan-c

查看节点属性信息 stat

[zk: localhost:2181(CONNECTED) 6] stat  /artisan-persist
cZxid = 0xa
ctime = Mon Nov 16 23:07:37 CST 2020
mZxid = 0xb
mtime = Mon Nov 16 23:08:55 CST 2020
pZxid = 0xa
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 12
numChildren = 0
[zk: localhost:2181(CONNECTED) 7] 


  • cZxid:创建znode的事务ID(Zxid的值)。
  • mZxid:最后修改znode的事务ID。
  • pZxid:最后添加或删除子节点的事务ID(子节点列表发生变化才会发生改变)。
  • ctime:znode创建时间。
  • mtime:znode最近修改时间。
  • dataVersion:znode的当前数据版本。
  • cversion:znode的子节点结果集版本(一个节点的子节点增加、删除都会影响这个版本)。
  • aclVersion:表示对此znode的acl版本。
  • ephemeralOwner:znode是临时znode时,表示znode所有者的 session ID。 如果znode不是临时znode,则该字段设置为零。
  • dataLength:znode数据字段的长度。
  • numChildren:znode的子znode的数量。


查看节点状态信息同时查看数据 get -s

[zk: localhost:2181(CONNECTED) 9] get  -s /artisan-persist
data_xxx_new
cZxid = 0xa
ctime = Mon Nov 16 23:07:37 CST 2020
mZxid = 0xb
mtime = Mon Nov 16 23:08:55 CST 2020
pZxid = 0xa
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 12
numChildren = 0
[zk: localhost:2181(CONNECTED) 10] 


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
5月前
|
存储 数据安全/隐私保护
zookeeper 节点介绍及节点常用命令总结
zookeeper 节点介绍及节点常用命令总结
162 4
|
2月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
67 1
|
2月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
45 1
|
2月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
50 1
|
4月前
|
数据采集 分布式计算 Kubernetes
Apache Flink 实践问题之ZooKeeper 网络瞬断时如何解决
Apache Flink 实践问题之ZooKeeper 网络瞬断时如何解决
100 4
|
4月前
|
分布式计算 监控 Hadoop
详解 Apache ZooKeeper 和 Apache Oozie
【8月更文挑战第31天】
124 0
|
5月前
|
API
zookeeper 使用api 进行节点增删改查及实现简易的配置中心
zookeeper 使用api 进行节点增删改查及实现简易的配置中心
50 2
|
7月前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
【4月更文挑战第11天】ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
75 11
|
3月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
3月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1

推荐镜像

更多