发布网友 发布时间:2024-10-23 20:00
共1个回答
热心网友 时间:5小时前
深入剖析Zookeeper客户端zkCli.sh的使用与功能详解
在深入学习Zookeeper(简称zk)客户端之前,首先需要理解zk的数据模型。zk维护着一个树形层次结构,这些节点被称为znode,结构类似Linux系统的文件系统。每个znode具有唯一的路径标识,最顶层znode为/,例如p_2的路径标识为/app1/p_2,不支持相对路径及“.”和“..”。
znode可以拥有子节点,并存储数据。但由于设计目的用于服务协调管理,存储的数据量较小,一般在1M以内。数据具有版本号,用于并发访问时实现一致性控制。znode分为临时和永久两种,客户端与服务器间的连接由心跳维持,session状态。临时节点在session失效时自动删除。节点名称可自动编号,创建同名节点时自动加编号,称为序列节点。节点可被监控,包括数据变更、子节点列表变动等。
zkCli.sh是Zookeeper安装包自带的客户端,位于$ZK_HOME/bin目录下,本文中ZK安装在/opt/zookeeper-3.4.9。连接ZK服务器使用命令:zkCli.sh -timeout 5000 -r -server ip:port。参数解释如下:-timeout指定心跳时间间隔(5000毫秒),-r表示只读模式连接,-server指定IP与端口(默认2181)。
使用zkCli.sh客户端连接成功后,通过命令查询可用客户端命令。这些命令与关系型数据库的SQL语句类似,用于节点和数据操作。具体命令及用途如下:
1. 查询子节点列表:ls path。path为节点路径。
2. 创建节点:create path [-s] [-e] data acl。path为节点路径,-s为序列节点,-e为临时节点,data为存储数据,acl为访问权限。
3. 获取节点状态:stat path [watch]。path为节点全路径,watch用于监听状态变化。
4. 获取节点数据:get path [watch]。path为节点路径,watch用于监听数据变化。
5. 设置节点数据:set path data [version]。path为节点路径,data为节点数据,version为版本号。
6. 查询子节点列表及状态信息:ls2 path [watch]。path为节点路径,watch用于监听子节点列表变化。
7. 删除节点:delete path [version]。path为节点路径,version为版本号。
8. 删除节点及子节点:rmr path。path为节点路径,递归删除子节点与节点本身。
9. 设置节点配额:setquota -n|-b val path。-n子节点数量,-b数据长度,val表示值,path为节点路径。
10. 查询节点配额:listquota path。path为节点路径。
11. 删除节点配额:delquota [-n|-b] path。path为节点路径。
12. 获取节点ACL:getAcl path。path为节点路径。
13. 设置节点ACL:setAcl path acl。path为节点路径,acl为权限模式。
14. 添加授权信息:addauth scheme auth。scheme为授权方式,auth为权限信息。
15. 查询历史命令:查看最近执行的10条命令。
16. 执行历史命令:redo cmdno。cmdno为命令编号。
17. 同步数据:sync path。在读操作时执行,确保连接到leader同步,获取最新数据。
18. 监听日志:printwatches on|off。默认打开,可关闭监听。
19. 关闭连接:close。
20. 重新连接:connect host:port。
21. 退出zkCli.sh终端:quit。
以上详细介绍了Zookeeper客户端zkCli.sh的使用方法及功能,有助于深入理解Zookeeper的分布式协调管理。