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是以前缀匹配路径,作用在指定路径路径及其子路径上。