第3关:节点配额及其他命令
200
- 任务要求
- 参考答案
- 评论20
- 任务描述
- 相关知识
- quota(配额)
- 其他命令
- 编程要求
- 测试说明
任务描述
本关任务:熟练掌握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
)与客服端连接。
测试说明
本关的测试需要用户在右侧的命令行下完成,用户只需将需要完成的命令在右侧命令行下直接操作即可,然后点击评测按钮,平台会自动验证用户是否按照要求去检测结果。
开始你的任务吧,祝你成功!