ZooKeeper-资源操作

1、数据操作

1.1、准备工作

# 创建一个持久目录/test
[zk: localhost:2181(CONNECTED) 0] create /test test
Created /test

[zk: localhost:2181(CONNECTED) 1] ls /
[test, zookeeper]

1.2、获取节点数据

1.2.1、命令参数介绍

使用get命令可以获取节点数据,命令格式如下:
get [-s] [-w] path
注意: 注意事项同ls

1.2.2、获取/test节点数据

[zk: localhost:2181(CONNECTED) 2] get -s /test
test
cZxid = 0x32
ctime = Tue May 30 20:51:00 CST 2023
mZxid = 0x32
mtime = Tue May 30 20:51:00 CST 2023
pZxid = 0x32
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0

1.3、设置节点数据

1.3.1、命令参数介绍

使用set命令可以获取节点数据,命令格式如下:
set [-s] [-v version] path data
注意:如果要指定 version,一定要是当前的version值,默认情况就是当前的version值,可以不写

1.3.2、更新/test节点数据

[zk: localhost:2181(CONNECTED) 4] set /test ygbh
[zk: localhost:2181(CONNECTED) 5] get /test
ygbh

[zk: localhost:2181(CONNECTED) 6] get -s /test 
ygbh
cZxid = 0x32
ctime = Tue May 30 20:51:00 CST 2023
mZxid = 0x33
mtime = Tue May 30 20:56:06 CST 2023
pZxid = 0x32
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0

# 注意:dataVersion的内容是每次更新,该值会递增下去

1.3.3、自定义版本号更新数据

# 当前的version值是1,如果要使用指定版本设置数据,version一定是当前的值,否则报错。
[zk: localhost:2181(CONNECTED) 8] set /test ygbh -v 3
version No is not valid : /test

# 需要设置v=1,才可设置成功
[zk: localhost:2181(CONNECTED) 9] set /test ygbh_v1 -v 1
[zk: localhost:2181(CONNECTED) 10] get -s /test 
ygbh_v1
cZxid = 0x32
ctime = Tue May 30 20:51:00 CST 2023
mZxid = 0x36
mtime = Tue May 30 20:59:15 CST 2023
pZxid = 0x32
cversion = 0
dataVersion = 2 # 设置成功,自增1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0

2、资源配额

2.1、查看资源配额

2.1.1、命令参数介绍

使用listquotat命令可以获取节点数据,命令格式如下:
listquota path
注意:注意事项同ls

2.1.2、查看指定结点的资源

[zk: localhost:2181(CONNECTED) 11] create /ygbh_test ygbh_test
Created /ygbh_test
[zk: localhost:
2181(CONNECTED) 12] listquota /ygbh_test absolute path is /zookeeper/quota/ygbh_test/zookeeper_limits quota for /ygbh_test does not exist. # 默认新创建的结点资源,是没有资源配额的。

2.2、设置资源配额

2.2.1、命令参数介绍

使用listquotat命令可以获取节点资源配额数据,命令格式如下:
setquota -n|-b|-N|-B val path
注意:
 -n 设置节点的节点个数
 -b 设置节点的数据长度
 如果超出了配置限制,不会停止行为操作,只是ZooKeeper将会在log日志中打印WARN日志。
 其他注意事项同ls

2.2.2、设置节点的数量资源

[zk: localhost:2181(CONNECTED) 40] create /ygbh ygbh
Created /ygbh

[zk: localhost:2181(CONNECTED) 41] setquota -n 2 /ygbh
[zk: localhost:2181(CONNECTED) 42] listquota /ygbh
absolute path is /zookeeper/quota/ygbh/zookeeper_limits
Output quota for /ygbh count=2,bytes=-1=;byteHardLimit=-1;countHardLimit=-1
Output stat for /ygbh count=1,bytes=4

# Output stat 后面的 count 表示的是总数量,bytes指定的是数据总长度,包括的子节点的数据长度
# 指定数量的话,数据长度默认没有限制

[zk: localhost:2181(CONNECTED) 41] listquota /ygbh 
absolute path is /zookeeper/quota/ygbh/zookeeper_limits
Output quota for /ygbh count=2,bytes=-1=;byteHardLimit=-1;countHardLimit=2
Output stat for /ygbh count=4,bytes=54

# 查看日志是否有打印出来限制,此功能没有什么用,只是日志输出

2.2.3、设置节点的数据长度资源

[zk: localhost:2181(CONNECTED) 44] create /ygbh ygbh

[zk: localhost:2181(CONNECTED) 45] setquota -b 8 /ygbh 

[zk: localhost:2181(CONNECTED) 46] listquota /ygbh 
absolute path is /zookeeper/quota/ygbh/zookeeper_limits
Output quota for /ygbh count=2,bytes=8=;byteHardLimit=-1;countHardLimit=2
Output stat for /ygbh count=1,bytes=4
# 指定数据长度的话,节点数量默认没有限制

2.3、删除资源配额

2.3.1、命令参数介绍

使用delquota命令可以删除节点资源配额数据,命令格式如下:
delquota [-n|-b] path
注意:
   -n 删除节点的节点个数
   -b 删除节点的数据长度

2.3.2、删除资源配额

[zk: localhost:2181(CONNECTED) 11] delquota -n /ygbh
[zk: localhost:2181(CONNECTED) 12] delquota -b /ygbh

2.3.3、检查效果

[zk: localhost:2181(CONNECTED) 14] listquota /ygbh
[zk: localhost:2181(CONNECTED) 15] listquota /ygbh

2.4、总结

1. zookeeper的quota并没有实际的限制作用,超出了也只是打印WARN级别日志。
2. quota有子节点数量和字节大小限制两种。
3. quota是以前缀匹配路径,作用在指定路径路径及其子路径上。

 

posted @ 2023-05-30 21:52  小粉优化大师  阅读(23)  评论(0编辑  收藏  举报