zookeeper 中不同角色的含义

警告
本文最后更新于 2020-05-30 17:09,文中内容可能已过时。

Zookeeper 集群主要角色有 Server 和 client,其中,Server 又分为 Leader、Follower 和 Observer 三个角色,每个角色的含义如下:

  • Leader:领导者角色,主要负责投票的发起和决议,以及更新系统状态。集群中只有一个 leader。
  • Follower:跟随者角色,用于接收客户端的请求并返回结果给客户端,在选举过程中参与投票。
  • Observer:观察者角色,用户接收客户端的请求,并将写请求转发给 leader,同时同步 leader 状态,但不参与投票。 Observer 目的是扩展系统,提高伸缩性。
  • Client: 客户端角色,用于向 Zookeeper 发起请求。
Zookeeper 集群中每个 Server 在内存中存储了一份数据,在 Zookeeper 启动时,将从实例中选举一个 Server 作为 leader,Leader 负责处理数据更新等操作,当且仅当大多数 Server 在内存中成功修改数据,才认为数据修改成功。

Zookeeper 写的流程为:客户端 Client 首先和集群任意一个节点通信,发起写请求,如果是 Follower,Observer 节点,则会把写请求转发给 leader,Leader 再将写请求转发给其它 Follower,其它 Follower 在接收到写请求后写入数据并响应 Leader,Leader 在接收到半数以上写成功回应后,认为数据写成功,最后响应 Client,完成一次写操作过程。

请我喝杯水
SoulChild 微信号 微信号
SoulChild 微信打赏 微信打赏
0%