ZooKeeper-分布式利器(2)——CLI与节点

Zookeeper具有命令行界面(CLI),用于和ZooKeeper服务器集群的简单交互,有助于调试和解决问题。要想使用ZooKeeper CLI,首先需要有运行着的ZooKeeper服务器(可通过bin/zkServer运行),然后运行ZooKeeper客户端。一旦客户端成功连接服务端,就可以使用以下命令对ZooKeeper进行操作。

CLI基本命令

常用命令

1.创建节点

使用create命令,可以创建一个ZooKeeper节点,

create [-s] [-e] path data acl

其中,-s 和 -e用来指定节点属性,顺序或临时节点,若不指定-e,则表示持久节点;acl为权限控制。

1.1创建顺序节点

使用 create -s /zk-sequence 123 命令 创建zk-sequence顺序节点

顺序节点zk-sequence0000000005

可以看到zk-sequence节点后面自动添加了一串数字

1.2创建临时节点

使用create -e /zk-temp 123 命令创建zk-temp临时节点

创建临时节点

临时节点在客户端会话结束后,就会自动删除,使用quit退出客户端

退出客户端

再使用客户端连接服务端,并使用ls /命令查看根目录下的节点

临时节点消失

可以看到临时节点zk-temp已经消失了。

2.读取节点

读取节点可以通过ls 和 get命令,ls命令可以列出ZooKeeper指定节点下的第一级的所有子节点;get命令可以获取ZooKeeper指定节点的数据内容和属性信息。

若获取根节点下面的所有子节点,使用ls / 命令即可 前文已经用过了。

若想要获取某个节点数据内容 和 元数据(描述性信息),使用get / 命令即可,如获取前文创建的顺序节点

get

3.更新节点

使用set命令可以更新指定节点的数据内容,用法如下

set path data [version]

更新节点操作

针对上面读取的同一个节点,更新节点后,可以看到dataVersion由0变为了1

数据已更新

并且可以看到此节点的内容数据由原来的“123”变为了“data-update”

4.删除节点

delete /path 删除节点。

rmr /path  删除节点及子节点。

删除节点

可以看到 FirstZnode0000000001节点已经被删除。

总结概念

至此,对于ZooKeeper基本对象Znode节点和层次命名空间,我们已经有了概念。

ZooKeeper提供的命名空间更像一个标准的文件系统。名称是被“/”分割开的路径元素序列。ZooKeeper中的每个节点由路径进行唯一标识。

ZooKeeper层次命名空间

不像标准的文件系统,ZooKeeper命名空间中的每个Znode节点都有与之相关的内容数据以及子节点。它就像一个允许Znode既是文件同时也是目录的文件系统。(ZooKeeper用来存储协调数据:状态信息、配置、位置信息等,每个节点存储的数据通常是很小的,以字节为单位。)我们使用术语Znode来称呼ZooKeeper的节点。

Znode保有一个stat的结构,包含了 数据修改的版本号,ACL的变化,和时间戳信息 用来做缓存验证和协调更新。每次znode的数据变化,版本号的增加。举个例子,当一个客户端检索数据,它也会收到数据的版本信息。

stat结构

czxid. 节点创建时的zxid.

mzxid. 节点最新一次更新发生时的zxid.

ctime. 节点创建时的时间戳.

mtime. 节点最新一次更新发生时的时间戳.

dataVersion. 节点数据的更新次数.

cversion. 其子节点的更新次数.

aclVersion. 节点ACL(授权信息)的更新次数.

ephemeralOwner. 如果该节点为临时节点, ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是临时节点, ephemeralOwner值为0. 至于什么是临时节点, 请看前后的讲述.

dataLength. 节点数据的字节数.

numChildren. 子节点个数.

znode节点的状态信息中包含czxid和mzxid, 那么什么是zxid呢? ZooKeeper状态的每一次改变, 都对应着一个递增的Transaction id, 该id称为zxid. 由于zxid的递增性质, 如果zxid1小于zxid2, 那么zxid1肯定先于zxid2发生. 创建任意节点, 或者更新任意节点的数据, 或者删除任意节点, 都会导致Zookeeper状态发生改变, 从而导致zxid的值增加.

ZooKeeper也有临时节点的概念,这些znode只存在于创建它的当前会话状态为活跃,一旦会话结束,临时节点也会消失。当你想要实现断开连接会被撤销的事务,临时节点非常好用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,924评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,902评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,716评论 0 239
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,783评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,166评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,510评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,784评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,476评论 0 196
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,196评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,459评论 2 243
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,978评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,321评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,964评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,046评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,803评论 0 193
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,530评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,420评论 2 265

推荐阅读更多精彩内容