配额
ZooKeeper具有名称空间和字节配额。
您可以使用ZooKeeperMain类设置配额。
如果用户超过分配给他们的配额,ZooKeeper会打印WARN消息。
消息将打印在ZooKeeper的日志中。
注意:名称空间配额的含义是计数配额,该数量配额限制了路径(包括其自身)下的子代数。
$ bin/zkCli.sh -server host:port**
上面的命令为您提供了使用配额的命令行选项。
设定配额
您可以使用setquota在ZooKeeper节点上设置配额。
它具有使用-n(用于名称空间/计数)和-b(用于字节/数据长度)设置配额的选项。
ZooKeeper配额存储在/ Zookeeper / quota中的ZooKeeper中。要禁止其他人更改配额,用户可以为/ zookeeper / quota设置ACL,以便只有管理员才能对其进行读写。
如果配额在指定路径中不存在,请创建配额,否则更新配额。
配额用户设置的范围是指定路径(包括其自身)下的所有节点。
为了简化当前目录/层次结构中配额的计算,一个完整的树路径(从根节点到叶节点)只能设置一个配额。在其父节点或子节点已具有配额的路径中设置配额的情况下。 setquota将拒绝并告知指定的父路径或子路径,用户可以根据特定情况调整配额分配(删除/上移/下移配额)。
与Chroot结合使用时,配额将在不同应用程序之间具有更好的隔离效果,例如:
Chroot is:
192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181/apps/app1 setquota -n 100000 /apps/app1
用户无法在 /zookeeper/quota
下的路径上设置配额
列出配额
您可以使用listquota列出ZooKeeper节点上的配额。
删除配额
您可以使用delquota删除ZooKeeper节点上的配额。
参考资料
https://zookeeper.apache.org/doc/r3.6.2/zookeeperTutorial.html