产品文档

分布式协调服务 Zookeeper 版

核心概念

集群角色

包括Leader、Follower、Observer三种角色: Leader:为客户端提供读写服务,并维护集群状态,它是由集群选举所产生的; Follower:为客户端提供读写服务,并定期向Leader汇报自己的节点状态。同时也参与写操作“过半写成功”的策略和Leader的选举; Observer:为客户端提供读写服务,并定期向Leader汇报自己的节点状态,但不参与写操作“过半写成功”的策略和Leader的选举,因此Observer可以在不影响写性能的情况下提升集群的读性能。

会话

Zookeeper客户端通过TCP长连接连接到服务集群,会话(Session)从第一次连接开始就已经建立,之后通过心跳检测机制来保持有效的会话状态。通过这个连接,客户端可以发送请求并接收响应,同时也可以接收到Watch事件的通知。

数据节点

Zookeeper数据模型是由一系列基本数据单元 Znode (数据节点)组成的节点树,其中根节点为 / 。每个节点上都会保存自己的数据和节点信息。Zookeeper中节点可以分为两大类: 持久节点:节点一旦创建,除非被主动删除,否则一直存在; 临时节点:一旦创建该节点的客户端会话失效,则所有该客户端创建的临时节点都会被删除。

节点信息

每个ZNode节点在存储数据的同时,都会维护一个叫做 Stat 的数据结构,里面存储了关于该节点的全部状态信息。

Watcher

Zookeeper中一个常用的功能是Watcher(事件监听器),它允许用户在指定节点上针对感兴趣的事件注册监听,当事件发生时,监听器会被触发,并将事件信息推送到客户端。该机制是Zookeeper实现分布式协调服务的重要特性。

ACL

Zookeeper采用ACL(Access Control Lists)策略来进行权限控制,类似于UNIX文件系统的权限控制。它定义了如下五种权限: CREATE :允许创建子节点; READ:允许从节点获取数据并列出其子节点; WRITE :允许为节点设置数据; DELETE :允许删除子节点; ADMIN:允许为节点设置权限。

更新时间:2020-04-29 13:14:21
文档反馈 docs feedback