一、节点配额概述

zookeeper中可以往节点存放数据,但是一般来说存放数据总是要有个度量的对吧,不然空间就那么大,如果某个节点将空间全占用了其它节点没得用了,所以zookeeper提供了一个对节点配额功能,不过这个配额功能有点鸡肋,当占用的空间超过了设置的大小时只会打印WARN级别的日志提醒而不是直接让超出配额的操作失败。既然只是在日志中打印一个警告信息,首先就是要找到日志的位置,默认情况下,日志的位置在$ZOOKEEPER/bin/zkEnv.sh中设置:

可以看到,如果不设置默认会将日志输出在zkEnv.sh脚本所在的目录,即将日志输出到$ZOOKEEPER/bin/zookeeper.out文件中。

配额类型

配额分为两种,一种是对子节点数量的限制,称之为count限制,一种是对节点能够存放的数据大小的限制,称之为byte限制。

配额信息的保存位置

zookeeper的配额信息是存储在/zookeeper/quota路径下的,可以打开看一下:

查看更详细的信息:

zookeeper_limits是对此节点施加的限制,即最大能够是多少:

zookeeper_stats是节点的当前状态,即当前已经用了多少:

配额可以通过zkCli.sh命令行工具进行相关设置,下面将相关的几个命令进行详细介绍。

二、quota相关命令

setquota -n|-b val path

用来设置某个节点的子节点个数和其本身的数据长度。

-n 限制此节点最大可拥有多少个子节点

-b 限制此节点能够存储的数据最大是多少个字节

-n 选项有点不太好理解,因为在树形结构中的限制子节点数量一般分为有两种情况:

1. 只算直接孩子节点的数量,孩子节点的子节点就不再算数

2. 只要是挂在这个节点下的节点都算数,是递归计算

那么这里的-n是指的哪种情况呢?来做一个小小的实验验证一下。

创建一个节点/foo,为其配额子节点数为3,然后在下面创建几个孩子节点:

然后查看日志:

这条日志是在创建/foo/c的时候打印的,但是仔细一算好像不太对哦,/foo/a、/foo/b、/foo/c这才三个节点啊,并没有超出限制为什么count显示4呢?这是因为当前节点本身还占用了一个计数。

-b选项和-n选项差不多:

创建/foo/a时打印了警告日志:

listquota path

显示指定路径下已经设置的配置

delquota [-n|-b] path

用于删除已经创建的quota:

需要注意的是删除节点时并不会自动删除绑定在特定路径上的quota,需要手动删除。

三、总结

1. zookeeper的quota并没有实际的限制作用,超出了也只是打印WARN级别日志。

2. quota有子节点数量和字节大小限制两种。

3. quota是以前缀匹配路径,作用在指定路径路径及其子路径上。

.

最新文章

  1. WinForm中显示PDF文件
  2. java 解 poj 1000
  3. React生命周期
  4. pythonchallenge 解谜 Level 3
  5. Javascript函数式编程要掌握的知识点讲解
  6. 特殊符号 && 和 ||
  7. 第六章 类型(class)和成员基础
  8. C#多态;父类引用指向子类对象;new和override的区别;new、abstract、virtual、override,sealed关键字区别和使用代码示例;c#类的初始化顺序
  9. bnuoj 4357 传送阵
  10. nginx Location配置总结(转)
  11. Mysql--mysqldump命令 备份数据库
  12. PYCURL ERROR 6 - “Couldn't resolve host 'mirrorlist.centos.org'”
  13. 开发环境配置--Ubuntu+Qt4+OpenCV(一)
  14. Python学习笔记(十)
  15. iOS UIAlertController中加入倒计时,输入框,Swift讲解
  16. 【转】NO.1、 appium之ios环境搭建
  17. Elastic 之倒排索引(二)
  18. Python学习笔记,day2
  19. input checkbox复选框取值
  20. jQuery源码解析对象实例化与jQuery原型及整体构建模型分析(一)

热门文章

  1. “数学口袋精灵”App的第一个Sprint计划----开发日记
  2. (Alpha)Let's-典型用户和场景&功能规格说明书
  3. Team抢救最后一下
  4. Alpha冲刺——day10
  5. git 客户端连接gitlab 实现简单的CI/CD
  6. poi中如何自定义日期格式
  7. Windows 10 中的存储空间
  8. jquer导航锚点链接动画效果和返回顶部代码
  9. php中的动态变量的一个应用
  10. 【BZOJ1021】[SHOI2008]循环的债务(动态规划)