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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 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实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
3月前
|
存储 缓存 Java
【Zookeeper】Apach Curator 框架源码分析:后台构造器和节点操作相关源码分析(二)【Ver 4.3.0】
【Zookeeper】Apach Curator 框架源码分析:后台构造器和节点操作相关源码分析(二)【Ver 4.3.0】
25 0
|
17天前
|
存储 Shell 数据安全/隐私保护
ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
【4月更文挑战第11天】ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
27 7
|
17天前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
【4月更文挑战第11天】ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
29 11
|
18天前
|
Shell
ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
【4月更文挑战第10天】ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
23 0
|
18天前
|
存储 Java 网络安全
ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
【4月更文挑战第10天】ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
31 1
|
20天前
|
存储 Java 网络安全
ZooKeeper【搭建 02】apache-zookeeper-3.6.0 集群版(准备+安装配置+启动验证)
【4月更文挑战第8天】ZooKeeper【搭建 02】apache-zookeeper-3.6.0 集群版(准备+安装配置+启动验证)
21 1
|
20天前
|
存储 Linux 数据库
ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
【4月更文挑战第8天】ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
34 0
|
25天前
|
存储
ZooKeeper客户端常用命令
ZooKeeper客户端常用命令
28 1
|
2月前
|
Shell Linux 网络安全
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
33 0
|
2月前
|
Shell Linux Apache
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
166 1

推荐镜像

更多