任务描述
本关任务:熟练掌握ZooKeeper的配额(quota )设置方法及节点其他命令。
相关知识
为了完成本关任务,你需要掌握:1.ZooKeeper服务器开启及客户端启动,2.命令行基本操作,3.ZooKeeper节点配额方法和基本操作。
quota(配额)
ZooKeeper的配额机制用以管理当前节点的数据大小和子节点数量。可以在节点上设置配额限制,如果超出了配置限制,ZooKeeper将会在log日志中打印WARN日志,但是并不会停止行为操作。
ZooKeeper的配额是存储在/zookeeper/quota路径下的。可以通过ZooKeeper client APIs或者ZooKeeper Java Shell来进行set,list,delete配额。以/zoo1节点为例,说明3种命令的使用方式。
首先列出当前节点的配额,使用以下命令:
listquota /zoo1
可以发现,zoo1
节点没有设置配额。设置节点配额使用setquota
命令。例如,将该节点的配额设置为3
,使用以下命令:
setquota -n 3 /zoo1
-n
表示设置节点数量限制,这里表示/zoo1
路径下的节点个数限制为3
(包括该节点); -b
表示设置节点数据的字节大小限制。
使用listquota
命令查看当前节点配额,与设置配额值相同。
ZooKeeper使用比较温和的方式,如果超出了配置限制,ZooKeeper将会在log
日志中打印WARN
日志,并不会停止行为操作。例如,创建/zoo1
的3
个子节点,使用以下命令:
create /zoo1/child1 "" create /zoo1/child2 "" create /zoo1/child3 ""
- 当创建节点后,可以从日志(或服务器前端)获得如下图所示信息:
- 删除节点配额使用
delquota
命令。例如,删除/zoo1
节点的节点数量限制,使用以下命令:
delquota /zoo1
其他命令
ls2
:列出当前节点的详细信息。
sync
:在对节点进行读操作时,应该先执行sync
方法,使得读操作的连接所连的ZooKeeper实例能与leader
进行同步,从而能读到最新的内容。
history
:列出前10
条历史命令。
redo
:重新执行第N
条指令。
编程要求
本关任务是使用命令行,进行以下操作:
- 开启ZooKeeper服务器。
- 使用客户端(
zkCli.sh
)连接客户端(IP:127.0.0.1
,端口号:2181
)。 - 创建
/test_quota
持久节点(节点数据为空)。 - 设置
/test_quota
路径节点限制个数为3
。 - 断开客户端(
zkCli.sh
)与客服端连接。
测试说明
本关的测试需要用户在右侧的命令行下完成,用户只需将需要完成的命令在右侧命令行下直接操作即可,然后点击评测按钮,平台会自动验证用户是否按照要求去检测结果。
开始你的任务吧,祝你成功!