Zookeeper作为分布式系统的底层协调服务有着其简单可依靠的数据模型,数据模型加之数据同步、一致性处理和可靠性,在此之上有很多经典的应用,例如,分布式锁、服务器动态上线下感知、主节点选举、数据发布与订阅、负载均衡等等,本篇文章重点为大家讲解一下Zookeeper数据模型。
创新互联是一家集网站建设,平果企业网站建设,平果品牌网站建设,网站定制,平果网站建设报价,网络营销,网络优化,平果网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
在 zookeeper 中,可以说 zookeeper 中的所有存储的数据是由 znode 组成的,节点也称为 znode,并以 key/value 形式存储数据。
整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头。
进入 zookeeper 安装的 bin 目录,通过sh zkCli.sh打开命令行终端,执行 “ls /” 命令显示:
$ ls /
$ ls /zookeeper
$ ls /zookeeper/quota
我们直观的看到此时存储的数据在根目录下存在 runoob 和 zookeeper 两个节点,zookeeper 节点下存在 quota 这个节点。 runoob 节点是在我们之前章节创建,并且通过 java 客户端设置值 0,现在我们在命令行终端执行 get /runoob 显示此节点的属性。
$ get /runoob
ZooKeeper 数据模型简介ZooKeeper 数据模型简介
cZxid | 创建节点时的事务ID |
---|---|
ctime | 创建节点时的时间 |
mZxid | 最后修改节点时的事务ID |
mtime | 最后修改节点时的时间 |
pZxid | 表示该节点的子节点列表最后一次修改的事务ID,添加子节点或删除子节点就会影响子节点列表,但是修改子节点的数据内容则不影响该ID**(注意,只有子节点列表变更了才会变更pzxid,子节点内容变更不会影响pzxid)** |
cversion | 子节点版本号,子节点每次修改版本号加1 |
dataversion | 数据版本号,数据每次修改该版本号加1 |
aclversion | 权限版本号,权限每次修改该版本号加1 |
ephemeralOwner | 创建该临时节点的会话的sessionID。**(**如果该节点是持久节点,那么这个属性值为0) |
dataLength | 该节点的数据长度 |
numChildren | 该节点拥有子节点的数量**(只统计直接子节点的数量)** |
显示详细信息
了解上面状态属性值,我们对 /runoob 节点做一次修改,执行命令 set /runoob 1 ,如下图所示:
$ set /runoob 1
对比上面结果,可以看到 mZxid、mtime、dataVersion 都发生了变化。
在 /runoob 节点下,我们再添加一子节点,执行:
$ create -e /runoob/child 0
$ get /runoob
提示:更多命令使用后面章节会详解介绍。
执行完终端命令行显示: 可见 /runoob 节点的 pZxid、cversion、numChildren 都发生了相应的改变。
当前标题:详解Zookeeper数据模型
当前URL:http://www.csdahua.cn/qtweb/news32/276932.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网