核心角色
三、核心概念
3.1 集群角色
- Leader :为客户端提供读写服务,并维护集群状态,它是由集群选举所产生的;
- Follower :为客户端提供读写服务,并定期向
Leader 汇报自己的节点状态。同时也参与写操作“过半写成功”的策略和Leader 的选举; - Observer :为客户端提供读写服务,并定期向
Leader 汇报自己的节点状态,但不参与写操作“过半写成功”的策略和Leader 的选举,因此Observer 可以在不影响写性能的情况下提升集群的读性能。
3.2 会话
关于会话中另外一个核心的概念是
3.3 数据节点
Znode
/
。每个节点上都会保存自己的数据和节点信息。
- 持久节点 :节点一旦创建,除非被主动删除,否则一直存在;
- 临时节点 :一旦创建该节点的客户端会话失效,则所有该客户端创建的临时节点都会被删除。
临时节点和持久节点都可以添加一个特殊的属性:SEQUENTIAL
,代表该节点是否具有递增属性。如果指定该属性,那么在这个节点创建时,
3.4 节点信息
每个Stat
的数据结构,里面存储了关于该节点的全部状态信息。如下:
状态属性 | 说明 |
---|---|
czxid | 数据节点创建时的事务 |
ctime | 数据节点创建时的时间 |
mzxid | 数据节点最后一次更新时的事务 |
mtime | 数据节点最后一次更新时的时间 |
pzxid | 数据节点的子节点最后一次被修改时的事务 |
cversion | 子节点的更改次数 |
version | 节点数据的更改次数 |
aversion | 节点的 |
ephemeralOwner | 如果节点是临时节点,则表示创建该节点的会话的 |
dataLength | 数据内容的长度 |
numChildren | 数据节点当前的子节点个数 |
3.5 Watcher
3.6 ACL
- CREATE:允许创建子节点;
- READ:允许从节点获取数据并列出其子节点;
- WRITE:允许为节点设置数据;
- DELETE:允许删除子节点;
- ADMIN:允许为节点设置权限。