ZooKeeper 数据模型

转载 2013年12月04日 00:07:01

本文主要讲述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,节点/修改创建时间,当前的数据版本号,数据内容长度,子节点个数等。

ZooKeeper数据模型

高可用的高性能的分布式系统协调服务。局部不可用是分布式系统的固有特征,ZooKeeper可以很好的地处理这种情况。 下面从三个方面来理解ZooKeeper服务:数据模型、操作、实现 数据模型 可...
  • caomiao2006
  • caomiao2006
  • 2015年06月02日 23:50
  • 714

Zookeeper的数据模型、节点、角色

一、Zookeeper的数据模型 1、层次化的目录结构,命名符合常规文件系统规范 2、每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识 3、节点Znode可以...
  • hsl_1990_08_15
  • hsl_1990_08_15
  • 2016年04月14日 17:52
  • 1672

zookeeper学习系列(四)zookeeper数据模型

本文主要讲述ZooKeeper的数据模型,包括ZooKeeper的数据视图,节点的层次结构以及节点类型等基本属性。Zookeeper的视图结构类似标准的Unix文件系统,但是没有引入文件系统相关概念:...
  • fanfan159357
  • fanfan159357
  • 2015年12月03日 23:17
  • 386

ZooKeeper数据模型与层次命名空间

树状结构 通过/分隔开路径名 每个路径代表一个节点Znode(zookeeper node) Znode 每个Znode有自身信息,数据、长度、创建时间、修改时间。 Zn...
  • tian_qing_lei
  • tian_qing_lei
  • 2017年08月29日 23:27
  • 137

zookeeper数据模型

Zookeeper的数据模型类似于Unix标准文件系统,只是文件目录里面没有文件。而是统称为Znode。Znode可以存放数据,以二进制的形式(默认不超过1MB)。这样就构成了类似文件系统的层次化命名...
  • qianshangding0708
  • qianshangding0708
  • 2015年12月01日 21:28
  • 1632

ZooKeeper 数据模型

ZooKeeper的数据结构, 与普通的文件系统极为类似. 见下图: 图片引用自developerworks 图中的每个节点称为一个znode. 每个znode由3部分组成: stat....
  • a1a2a3a4
  • a1a2a3a4
  • 2015年02月10日 18:05
  • 247

zookeeper官档教程一(zookeeper数据模型)

zookeeper有一个高级的命名空间,像一个分布式文件系统,但是唯一区别在于空间中每个node都和它的子文件相关,就像任何一个文件都可以是一个文件夹。路径也是绝对路径,没有相对路径。同时有一些命名规...
  • mr253727942
  • mr253727942
  • 2016年01月03日 00:58
  • 1209

Zookeeper 01 数据模型

Sessions 在向Zookeeper集群提交的任何请求之前,客户端都必须建立一个会话(session)。客户端提交的任何操作都与一个Session相关。当Session中断时,在本sessi...
  • yanliang1
  • yanliang1
  • 2015年06月16日 09:04
  • 298

zookeeper(六)数据模型

Zookeeper数据模型: Zookeeper的结构类似标准的文件系统,但这个文件系统中没有文件和目录,而是统一使用节点(node)的概念,称为znode。Znode作为保存数据的容器(限制在1m...
  • wackycrazy
  • wackycrazy
  • 2015年10月08日 14:27
  • 186

zookeeper之数据模型

以下参考:http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ Zookeeper数据模型 Zook...
  • yy490146739
  • yy490146739
  • 2013年03月14日 13:30
  • 559
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ZooKeeper 数据模型
举报原因:
原因补充:

(最多只允许输入30个字)