【ZooKeeper Notes 14】数据模型

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介:

本文主要讲述ZooKeeper的数据模型,包括ZooKeeper的数据视图,节点的层次结构以及节点类型等基本属性。Zookeeper的视图结构类似标准的Unix文件系统,但是没有引入文件系统相关概念:目录和文件,而是使用了自己特有的节点(node)概念,称为znode。Znode是ZooKeeper中数据的最小单元,每个znode上都可以保存数据,同时还可以挂载子节点,也构成了一个层次化的命名空间,我们称之为树。

首先我们来看下面这张图,对ZooKeeper上的数据节点有一个大概的认识。这个图来自zookeeper官方文档中,相信很多开发者在网上也都看到过很多次了。在ZK中,每一个数据节点称为一个znode,所有znode按层次化进行组织,形成一棵树。znode是一个跟Unix文件系统路径相似的节点,由一系列由斜杠(/ )进行分割的路径表示。可以向这个节点中写入数据,也可以在节点下面创建子节点。

085951545.png

节点类型

每个节点是有生命周期的,这取决于节点的类型。在ZooKeeper中,节点类型可以分为持久节点(PERSISTENT )、临时节点(EPHEMERAL),以及时序节点(SEQUENTIAL ),具体在节点创建过程中,一般是组合使用,可以生成以下4种节点类型:

持久节点(PERSISTENT)

所谓持久节点,是指在节点创建后,就一直存在,直到有删除操作来主动清除这个节点——不会因为创建该节点的客户端会话失效而消失。

持久顺序节点(PERSISTENT_SEQUENTIAL )

这类节点的基本特性和上面的节点类型是一致的。额外的特性是,在ZK中,每个父节点会为他的第一级子节点维护一份时序,会记录每个子节点创建的先后顺序。基于这个特性,在创建子节点的时候,可以设置这个属性,那么在创建节点过程中,ZK会自动为给定节点名加上一个数字后缀,作为新的节点名。这个数字后缀的上限是整型的最大值。

临时节点(EPHEMERAL )

和持久节点不同的是,临时节点的生命周期和客户端会话绑定。也就是说,如果客户端会话失效,那么这个节点就会自动被清除掉。注意,这里提到的是会话失效,而非连接断开。另外,在临时节点下面不能创建子节点。

临时顺序节点(EPHEMERAL_SEQUENTIAL)

节点信息

 
  1. [zk: localhost:2181(CONNECTED) 4] get /YINSHI.MONITOR.ALIVE.CHECK

  2. ?t 10.232.102.191:21811353595654255

  3. cZxid = 0x300000002

  4. ctime = Thu Dec 08 23:29:53 CST 2011

  5. mZxid = 0xe00008bbf

  6. mtime = Thu Jul 28 07:17:34 CST 2012

  7. pZxid = 0x300000002

  8. cversion = 0

  9. dataVersion = 2164293

  10. aclVersion = 0

  11. ephemeralOwner = 0x0

  12. dataLength = 39

  13. numChildren = 0

上面这个信息,是在ZK命令行的一个输出信息,从这个输出内容中可以清楚的看到,ZK的一个节点包含了哪些信息。其中比较重要的信息包括节点的数据内容,节点创建/修改的事务ID,节点/修改创建时间,当前的数据版本号,数据内容长度,子节点个数等。




本文转自 nileader 51CTO博客,原文链接:http://blog.51cto.com/nileader/946788,如需转载请自行联系原作者

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
4月前
|
Java Unix 程序员
ZooKeeper数据模型你懂吗?
ZooKeeper数据节点你懂吗?那数据节点有什么类型?数据节点的版本呢?听说ZooKeeper还有事务ID,你知不知道啊?还有Watcher机制呢?ZooKeeper作为一个典型的分布式数据一致性的解决方案,ZooKeeper的技能点是Java程序员进阶所必须掌握。如果上面的问题你还不懂的话,不妨看看下文对这些概念的解析~
ZooKeeper数据模型你懂吗?
|
存储
Zookeeper 数据模型和节点特性
Zookeeper 数据模型和节点特性
58 0
|
存储 监控 Apache
Apache ZooKeeper - ZooKeeper 数据模型回顾
Apache ZooKeeper - ZooKeeper 数据模型回顾
85 0
|
存储 消息中间件 负载均衡
Zookeeper系列(一)——Zookeeper基础之数据模型
Zookeeper系列(一)——Zookeeper基础之数据模型
177 0
Zookeeper系列(一)——Zookeeper基础之数据模型
|
存储 大数据 Unix
Zookeeper 数据模型|学习笔记
快速学习 Zookeeper 数据模型
Zookeeper 数据模型|学习笔记
|
存储 大数据 Unix
2021年大数据ZooKeeper(三):Zookeeper数据模型和节点类型
2021年大数据ZooKeeper(三):Zookeeper数据模型和节点类型
196 0
2021年大数据ZooKeeper(三):Zookeeper数据模型和节点类型
|
存储 监控 数据安全/隐私保护
ZooKeeper 数据模型:节点的特性与应用
zk的基础知识基本分为三大模块 • 数据模型 • ACL 权限控制 • Watch 监控
164 0
ZooKeeper分布式入门实战(二)-ZooKeeper基本数据模型
1 zk数据模型介绍 一 二 2 zk客户端连接关闭服务端,查看znode 重启 zk 启动 zkCli.
1180 0