admin 管理员组文章数量: 1086866
Zookeeper的数据模型和节点类型
数据模型:
树形结构
zk维护的数据主要有:客户端的会话( session )状态及数据节点( dataNode )信息。zk在内存中构造了个 DataTree 的数据结构,维护着path到dataNode的映射以及dataNode间的树状层级关系。为了提⾼读取性能,集群中每个服务节点都是将数据全量存储在内存中。所以, zk最适于读多写少且轻量级数据 的应⽤场景。
数据仅存储在内存是很不安全的,zk采⽤事务⽇志⽂件及快照⽂件的⽅案来落盘数据,保障数据在不丢失的情况下能快速恢复。
树中的每个节点被称为— Znode
Znode 兼具 ⽂件 和 ⽬录 两种特点。可以做路径标识,也可以存储数据,并可以具有⼦ Znode。具有增、 删、改、查等操作。Znode 具有原⼦性操作,读操作将获取与节点相关的所有数据,写操作也将 替换掉节点的所有数据。另外,每⼀个节点都拥有⾃⼰的 ACL(访问控制列 表),这个列表规定了⽤户的权限,即限定了特定⽤户对⽬标节点可以执⾏的操作
Znode 存储数据⼤⼩有限制。每个 Znode 的数据⼤⼩⾄多 1M,常规使⽤中应该远⼩于此值。
Znode 通过路径引⽤,如同 Unix 中的⽂件路径。路径必须是绝对的,因此他们必须由斜杠字符来开头。除此以外,他们必须是唯⼀的,也就是说每⼀个路径只有⼀个表示,因此这些路径不能改变。在ZooKeeper 中,路径由 Unicode 字符串组成,并且有⼀些限制。字符串"/zookeeper"⽤以保存管理信息,⽐如关键配额信息。
持久节点:⼀旦创建、该数据节点会⼀直存储在zk服务器上、即使创建该节点的客户端与服务端的会话关闭了、该节点也不会被删除
临时节点:当创建该节点的客户端会话因超时或发⽣异常⽽关闭时、该节点也相应的在zk上被删除
有序节点:不是⼀种单独种类的节点、⽽是在持久节点和临时节点的基础上、增加了⼀个节点有序的性质 。
本文标签: Zookeeper的数据模型和节点类型
版权声明:本文标题:Zookeeper的数据模型和节点类型 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1687945548a160464.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论