【zookeeper】--数据结构

【zookeeper】--数据结构,第1张

概述本文章向大家介绍【zookeeper】--数据结构,主要包括【zookeeper】--数据结构使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

ZooKeeper提供的名称空间非常类似于标准文件系统。名称是由斜线(/)分隔的一系列路径元素。ZooKeeper名称空间中的每个节点都由一个路径标识。

    树是由节点所组成,zookeeper的数据存储也同样是基于节点,这个节点叫做Znode.但是,不同于树的节点,Znode的引用方式是路径引用,类似于文件路径:/app1/p_1

  这样的层级结构,让每一个Znode节点拥有唯一的路径,就像命名空间一样对不同信息作出清晰的隔离。


ZooKeeper中节点和临时节点

ZooKeeper的节点是通过像树一样的结构来进行维护的,并且每一个节点通过路径来标示以及访问。除此之外,每一个节点还拥有自身的一些信息,包括:数据、数据长度、创建时间、修改时间等等。从这样一类既含有数据,又作为路径表标示的节点的特点中,可以看出,ZooKeeper的节点既可以被看做是一个文件,又可以被看做是一个目录,它同时具有二者的特点。为了便于表达,今后我们将使用Znode来表示所讨论的ZooKeeper节点。


具体地说,Znode维护着数据、ACL(access control List,访问控制列表)、时间戳等交换版本号等数据结构,它通过对这些数据的管理来让缓存生效并且令协调更新。每当Znode中的数据更新后它所维护的版本号将增加,这非常类似于数据库中计数器时间戳的 *** 作方式。


另外Znode还具有原子性 *** 作的特点:命名空间中,每一个Znode的数据将被原子地读写。读 *** 作将读取与Znode相关的所有数据,写 *** 作将替换掉所有的数据。除此之外,每一个节点都有一个访问控制列表,这个访问控制列表规定了用户 *** 作的权限。


ZooKeeper中同样存在临时节点。这些节点与session同时存在,当session生命周期结束,这些临时节点也将被删除。临时节点在某些场合也发挥着非常重要的作用。

Znode:

  znode包含了数据、子节点引用、访问权限等等。

data:


   Znode存储的数据信息。

ACL:


   记录Znode的访问权限,即哪些人或哪些IP可以访问本节点。

stat:


包含Znode的各种元数据,比如事务ID、版本号、时间戳、大小等等。

child:


    当前节点的子节点引用,类似于二叉树的左孩子右孩子。


这里需要注意一点,Zookeeper是为读多写少的场景所设计。Znode并不是用来存储大规模业务数据,而是用于存储少量的状态和配置信息,每个节点的数据最大不能超过1MB。


总结

以上是内存溢出为你收集整理的【zookeeper】--数据结构全部内容,希望文章能够帮你解决【zookeeper】--数据结构所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1264654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存