APP和网站是一样吗,网站灰色,在线定制签名,品牌买购网文章目录 一、概述二、命令使用2.1 登录 ZooKeeper2.2 ls 命令#xff0c;查看目录树#xff08;节点#xff09;2.3 create 命令#xff0c;创建节点2.4 delete 命令#xff0c;删除节点2.5 set 命令#xff0c;设置节点数据2.6 get 命令#xff0c;获取节点数据 三、数… 文章目录 一、概述二、命令使用2.1 登录 ZooKeeper2.2 ls 命令查看目录树节点2.3 create 命令创建节点2.4 delete 命令删除节点2.5 set 命令设置节点数据2.6 get 命令获取节点数据 三、数据解析 一、概述 ZooKeeper是一个开源的、分布式的协调服务它主要用于分布式系统中的数据管理和协调任务。它提供了一个具有高可用性的分布式环境用于存储和管理小规模数据例如配置信息、命名服务、分布式锁等。 ZooKeeper的数据模型基于树形结构类似于文件系统的目录结构。每个节点Node都可以存储一个小的数据块称为节点数据Node Data。每个节点都有一个唯一的路径标识符称为节点路径Node Path。节点路径使用斜杠/进行分隔类似于文件系统的路径。 ZooKeeper的数据具有以下特点 层次结构ZooKeeper的数据以树形结构组织类似于文件系统的目录结构。每个节点可以包含子节点形成层次结构。(基于内存的默认最大1MB)有序性ZooKeeper对创建和修改节点的顺序进行严格的有序性保证。每个写操作都会分配一个全局唯一的递增编号称为ZXID这样可以对操作进行排序和重放确保数据的一致性。临时节点ZooKeeper支持创建临时节点。当创建临时节点的客户端与ZooKeeper失去连接时该节点会被自动删除。这对于实现临时性的任务分配和会话管理非常有用。(这点很重要基于会话Session管理数据)通知机制ZooKeeper提供了通知机制可以让客户端在节点数据发生变化时得到通知。通过注册监听器客户端可以接收到节点的创建、删除和修改事件从而实现对数据的实时监控和及时响应。高可用性ZooKeeper的设计目标之一是高可用性。它使用了多数投票算法来实现主节点的选举当集群中的节点发生故障时可以自动选择新的主节点保证系统的可用性。节点可用性是通过选举超半数机制数据可用性是广播半数以上成功算成功 在ZooKeeper集群中每个节点都可以连接到其他节点建立相互之间的通信和数据同步。通过这些连接集群中的节点可以相互通知和同步数据的变化以实现数据的一致性和高可用性。 如果您还不会安装 ZooKeeper请看这里 ZooKeeper 安装说明。 Zookeeper 数据示意图
二、命令使用
2.1 登录 ZooKeeper 使用 zkCli.sh 进入 ZooKeeper zkCli.sh查看可使用的指令帮助 [zk: localhost:2181(CONNECTED) 0] help ZooKeeper -server host:port -client-configuration properties-file cmd args addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTEN T_RECURSIVE] - default is PERSISTENT_RECURSIVE addauth scheme auth close config [-c] [-w] [-s] connect host:port create [-s] [-e] [-c] [-t ttl] path [data] [acl] delete [-v version] path deleteall path [-b batch size] delquota [-n|-b|-N|-B] path get [-s] [-w] path getAcl [-s] path getAllChildrenNumber path getEphemerals path history listquota path ls [-s] [-w] [-R] path printwatches on|off quit reconfig [-s] [-v version] [[-file path] | [-members serverIDhost:port1 :port2;port3[,…]]] | [-add serverIdhost:port1:port2;port3[,…]] [-remove s erverId[,…]*] redo cmdno removewatches path [-c|-d|-a] [-l] set [-s] [-v version] path data setAcl [-s] [-v version] [-R] path acl setquota -n|-b|-N|-B val path stat [-w] path sync path version whoami Command not found: Command not found help [zk: localhost:2181(CONNECTED) 1]
2.2 ls 命令查看目录树节点 如查看根节点下的所有节点 ls /[zk: localhost:2181(CONNECTED) 2] ls / [zookeeper] [zk: localhost:2181(CONNECTED) 3]
2.3 create 命令创建节点 选项说明 -s 创建会话唯一节点创建会话唯一节点会在节点名称后加会话ID。-e 创建临时节点临时节点会话结束会消失。 创建节点 aaa create /aaa[zk: localhost:2181(CONNECTED) 3] create /aaa Created /aaa [zk: localhost:2181(CONNECTED) 4] 创建临时子节点 aaa/bbb 同时设置数据 222 create -e /aaa/bbb 222[zk: localhost:2181(CONNECTED) 5] create -e /aaa/bbb “222” Created /aaa/bbb [zk: localhost:2181(CONNECTED) 6] 创建会话唯一节点 ccc create -s /ccc 3333[zk: localhost:2181(CONNECTED) 23] create -s /ccc “3333” Created /ccc0000000001 [zk: localhost:2181(CONNECTED) 24]
2.4 delete 命令删除节点 如下删除节点 a1 delete /a1[zk: localhost:2181(CONNECTED) 24] create /a1 “123” Created /a1 [zk: localhost:2181(CONNECTED) 25] ls / [a1, aaa, ccc0000000001, zookeeper] [zk: localhost:2181(CONNECTED) 26] delete /a1 [zk: localhost:2181(CONNECTED) 27]
2.5 set 命令设置节点数据 设置节点 aaa 数据 111 set /aaa 1111[zk: localhost:2181(CONNECTED) 6] set /aaa “1111” [zk: localhost:2181(CONNECTED) 7]
2.6 get 命令获取节点数据 选项说明 -s 可以查看更多信息 获取节点 aaa 和 aaa/bbb 的数据 get /aaa
get /aaa/bbb
get -s /aaa[zk: localhost:2181(CONNECTED) 7] get /aaa 1111 [zk: localhost:2181(CONNECTED) 8] get /aaa/bbb 222 [zk: localhost:2181(CONNECTED) 9] [zk: localhost:2181(CONNECTED) 14] get -s /aaa 111 cZxid 0x100000004 ctime Wed Oct 18 15:24:33 CST 2023 mZxid 0x100000009 mtime Wed Oct 18 15:35:46 CST 2023 pZxid 0x100000006 cversion 1 dataVersion 3 aclVersion 0 ephemeralOwner 0x0 dataLength 3 numChildren 1 三、数据解析
以上面返回数据为例进行解析如下 [zk: localhost:2181(CONNECTED) 14] get -s /aaa 111 cZxid 0x100000004 ctime Wed Oct 18 15:24:33 CST 2023 mZxid 0x100000009 mtime Wed Oct 18 15:35:46 CST 2023 pZxid 0x100000006 cversion 1 dataVersion 3 aclVersion 0 ephemeralOwner 0x0 dataLength 3 numChildren 1 111这是节点 /aaa 中的数据。get 命令执行后它返回了节点 /aaa 的数据这里是字符串 “111”。 cZxid 0x100000004这是有关节点的 ZooKeeper 事务 ID用于标识节点的创建。cZxid 表示 “create ZooKeeper transaction ID”。 ctime Wed Oct 18 15:24:33 CST 2023这是节点的创建时间。ctime 表示 “creation time”。 mZxid 0x100000009这是有关节点的 ZooKeeper 事务 ID用于标识节点的修改。mZxid 表示 “modify ZooKeeper transaction ID”。 mtime Wed Oct 18 15:35:46 CST 2023这是节点的修改时间。mtime 表示 “modification time”。 pZxid 0x100000006这是有关节点的 ZooKeeper 事务 ID用于标识节点的父节点。pZxid 表示 “parent ZooKeeper transaction ID”。 cversion 1这是节点的子节点版本号表示有多少子节点。在这种情况下/aaa 节点有一个子节点。 dataVersion 3这是节点的数据版本号表示数据被修改的次数。在这种情况下数据已被修改 3 次。 aclVersion 0这是节点的 ACL访问控制列表版本号表示节点的权限配置。在这里版本号为 0。 ephemeralOwner 0x0这是有关节点的临时节点所有者的信息。在这里节点不是临时节点所以值为 0。 dataLength 3这是节点数据的长度表示数据的字节数。在这里数据长度为 3 字节。 numChildren 1这是节点的子节点数量表示 /aaa 节点下有 1 个子节点。