Zookeeper数据结构
来源:互联网 发布:sql 动态列合计 编辑:程序博客网 时间:2024/04/29 08:58
根据本小结第一部分的描述,很显然zookeeper集群自身维护了一套数据结构。这个存储结构是一个树形结构,其上的每一个节点,我们称之为“znode”。如下如所示:
Ø 每一个znode默认能够存储1MB的数据(对于记录状态性质的数据来说,够了)
Ø 可以使用zkCli命令,登录到zookeeper上,并通过ls、create、delete、sync等命令操作这些znode节点
Ø znode除了名称、数据以外,还有一套属性:zxid。这套zid与时间戳对应,记录zid不同的状态(后续我们将用到)
那么每个znode结构又是什么样的呢?如下图所示:
此外,znode还有操作权限。如果我们把以上几类属性细化,又可以得到以下属性的细节:
Ø czxid:创建节点的事务的zxid
Ø mzxid:对znode最近修改的zxid
Ø ctime:以距离时间原点(epoch)的毫秒数表示的znode创建时间
Ø mtime:以距离时间原点(epoch)的毫秒数表示的znode最近修改时间
Ø version:znode数据的修改次数
Ø cversion:znode子节点修改次数
Ø aversion:znode的ACL修改次数
Ø ephemeralOwner:如果znode是临时节点,则指示节点所有者的会话ID;如果不是临时节点,则为零。
Ø dataLength:znode数据长度。
Ø numChildren:znode子节点个数。
znode中的存在类型
我们知道了zookeeper内部维护了一套数据结构:由znode构成的集合,znode的集合又是一个树形结构。每一个znode又有很多属性进行描述。并且znode的存在性还分为四类,如下如所示:
znode是由客户端创建的,它和创建它的客户端的内在联系,决定了它的存在性:
Ø PERSISTENT-持久化节点:创建这个节点的客户端在与zookeeper服务的连接断开后,这个节点也不会被删除(除非您使用API强制删除)。
Ø PERSISTENT_SEQUENTIAL-持久化顺序编号节点:当客户端请求创建这个节点A后,zookeeper会根据parent-znode的zxid状态,为这个A节点编写一个全目录唯一的编号(这个编号只会一直增长)。当客户端与zookeeper服务的连接断开后,这个节点也不会被删除。
Ø EPHEMERAL-临时目录节点:创建这个节点的客户端在与zookeeper服务的连接断开后,这个节点(还有涉及到的子节点)就会被删除。
Ø EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点:当客户端请求创建这个节点A后,zookeeper会根据parent-znode的zxid状态,为这个A节点编写一个全目录唯一的编号(这个编号只会一直增长)。当创建这个节点的客户端与zookeeper服务的连接断开后,这个节点被删除。
另外,无论是EPHEMERAL还是EPHEMERAL_SEQUENTIAL节点类型,在zookeeper的client异常终止后,节点也会被删除。
- Zookeeper数据结构
- Zookeeper概念 & 数据结构
- [ZooKeeper]znode的stat数据结构
- zookeeper数据结构及Znode类型
- 4.2.zookeeper数据结构及操作
- ZooKeeper的数据结构模型和特点
- zookeeper的数据结构与监听功能
- Zookeeper核心工作机制(zookeeper特性、zookeeper数据结构、节点类型)
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- ZooKeeper
- zookeeper
- androidStudio添加aar
- Yarn的安装与使用详细介绍
- codeforces808E(超大背包的解决问题,中途相遇法)
- takes 0 positional arguments but 1 was given
- linux文件权限的管理
- Zookeeper数据结构
- 【网络编程】服务端的I/O模型,事件处理模式,并发模式
- LeNet-5卷积神经网络的整体框架介绍
- 微信浏览器播放音乐
- 最长回文子串
- 免费在线鉴别邮箱是不是国外客户(真实外国人)
- 链接一个做水的例子(虽然什么解释都没有)
- asp.net生成csv文件,并在客户端点击下载(文件流直接输出到客户端而不是先生成保存在服务端再下载)
- Ubuntu14.04/16.04 安装matlab2014a