开发者学堂课程【大数据 ZooKeeper 快速入门: Zookeeper 数据模型】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/549/detail/7587
Zookeeper 数据模型
目录:
一、Zookeeper 数据模型概述
二、Zookeeper 节点不同之处
三、数据结构
下面来了解以下 zookeeper 的数据模型
一、Zookeeper 数据模型介绍
ZooKeeper 的数据模型,在结构上和标准文件系统的非常相似,拥有一个层次的命名空间,都是采用树形层次结构,ZooKeeper 树中的每个节点被称为一 Znode。和文件系统的目录树一样,ZooKeeper 树中的每个节点可以拥有子节点。
二、zookeeper节点不同之处
1. Znode 兼具文件和目录两种特点。
作文文件保存数据,作为目录可以作为路径标识,既像文件一样维护着数据、元信息、ACL、时间戳等数据结构,又像目录一样可以作为路径标识的一部分,并可以具有子Znode。用户对Znode具有增、删、改、查等操作(权限允许的情况下)。
2. Znode 具有原子性操作
原子性操作要么成功要么失败,不可能存在中间状态,读操作将获取与节点相关的所有数据,写操作也将替换掉节点的所有数据。另外,每一个节点都拥有自己的 ACL(访问控制列表),这个列表规定了用户的权限,即限定了特定用户对目标节点可以执行的操作。
3. Znode 存储数据大小有限制。
ZooKeeper 虽然可以关联一些数据,但并没有被设计为常规的数据库或者大数据存储,相反的是,它用来管理调度数据,比如分布式应用中的配置文件信息、状态信息、汇集位置等等。这些数据的共同特性就是它们都是很小的数据,通常以 KB 为大小单位。ZooKeeper 的服务器和客户端都被设计为严格检查并限制每个 Znode 的数据大小至多 1M,当时常规使用中应该远小于此值。
4. Znode 通过路径引用,如同 Unix 中的文件路径。
路径必须是绝对的,因此他们必须由斜杠字符来开头。除此以外,他们必须是唯一的,也就是说每一个路径只有一个表示,因此这些路径不能改变。在 ZooKeeper中,路径由 Unicode 字符串组成,并且有一些限制。字符串"/zookeeper"用以保存管理信息,比如关键配额信息。
三、数据结构
从根目录开始,可以创建子文件夹,文件夹下面可以创建子节点
和标准的文件系统相似,形成庞大的文件。
图中的每个节点称为一个 Znode。每个 Znode 由3部分组成:
stat:此为状态信息,描述该 Znode 的版本,权限等信息
data:与该 Znode 关联的数据
children:该 Znode 下的子节点