ZooKeeper 的工作流程

ZooKeeper 集群中的角色简介:

  • Leader: 负责发起投票和决议,更新系统状态
  • Follower:用于接收客户端请求并向客户端返回结果,在选主过程中参与投票
  • Observer: 可以接收客户端连接,将写请求转发给 Leader 节点,但不会参与 Leader 发起的投票,也不会被选举为 Leader,Observer 的目的是为了扩展系统,提高读取速度

一个 ZooKeeper 集群中同一时间只有一个 Leader,其他的都是 Follower 或 Observer

一、Leader 的工作流程

Leader 的主要功能有三个:

  1. 恢复数据
  2. 维持与 Learner(Follower 和 Observer) 的心跳,接收 Learner 的请求并判断 Learner 的请求消息类型

Learner 的消息类型:

  • PING 消息:Leaner 的心跳信息
  • REQUEST 消息:Follower 发送的提议信息,包括读写请求
  • ACK 消息:Follower 对提议的回复,超过半数的 Follower 通过,则 Commit 该提议
  • REVALIDATE 消息:用来延长 SESSION 有效时间
  1. 根据不同的消息类型,进行不同的处理

二、Follower 的工作流程

Follower 的主要功能有四个:

  1. 向 Leader 发送请求(PING 消息、REQUEST 消息、ACK 消息、REVALIDATE 消息)
  2. 接收 Leader 消息并进行处理
  3. 接收 Client 的请求,如果为写请求,则转发给 Leader
  4. 返回 Client 结果

Follower 循环处理如下几种来自 Leader 的消息:

  1. PING 消息:心跳消息
  2. PROPOSAL 消息:Leader 发起的提案,要求 Follower 投票
  3. COMMIT 消息:服务器端最新一次提案的信息
  4. UPTODATE 消息:表明此 Follower 同步已完成
  5. REVALDATA 消息:根据 Leader 的 REVALDATE 结果,确定关闭等待 revalidate 的 session 还是允许其接收消息
  6. SYNC 消息:返回 SYNC 结果到客户端,这个消息最初由客户端发起,用来强制得到最新的更新

三、Observer 的工作流程

Observer 的工作流程和 Follower 的唯一不同就是 Observer 不会参加 Leader 发起的投票,也不会被选举为 Leader,此处不再赘述。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值