Leader

Leader服务器是整个ZooKeeper集群工作机制中的核心,其主要工作有以下两个。
· 事务请求的唯一调度和处理者,保证集群事务处理的顺序性。
· 集群内部各服务器的调度者。
ZooKeeper 各服务器角色介绍

  1. PrepRequestProcessor
    Leader服务器的请求预处理器,能够识别出当前客户端请求是否是事务请求(创建节点、更新数据、删除节点以及创建会话等请求)。对于事务请求对其进行一系列预处理,诸如创建请求事务头、事务体,会话检查、ACL检查和版本检查等。
  2. ProposalRequestProcessor
    Leader服务器的事务投票处理器,对于非事务请求,会直接将请求流转到CommitProcessor处理器,不再做其他处理;
    对于事务请求,将请求交给CommitProcessor处理器,并且还会创建对应的Proposal提议,发送给所有的 Follower 服务器发起一次集群内的事务投票。同时还会将事务请求交付给SyncRequestProcessor 进行事务日志的记录。
  3. SyncRequestProcessor
    该处理器主要用来将事务请求记录到事务日志文件中去,同时还会触发 ZooKeeper 进行数据快照。
  4. AckRequestProcessor
    Leader特有的处理器,其主要负责在SyncRequest Processor处理器完成事务日志记录后,向Proposal的投票收集器发送ACK反馈
  5. CommitProcessor
    事务提交处理器。非事务,该处理器会直接将其交付给下一级处理器进行处理;而对于事务请求,CommitProcessor处理器会等待集群内针对Proposal的投票直到该Proposal可被提交
  6. ToBeCommitProcessor
    专门用来存储那些已经被CommitProcessor处理过的可被提交的Proposal。将这些请求逐个交付给FinalRequestProcessor处理器进行处理
  7. FinalRequestProcessor
    该处理器主要用来进行客户端请求返回之前的收尾工作,包括创建客户端请求的响应;针对事务请求,该处理器还会负责将事务应用到内存数据库中去。

Follower

Follower服务器是ZooKeeper集群状态的跟随者,其主要工作有以下三个。
· 处理客户端非事务请求,转发事务请求给Leader服务器。
· 参与事务请求Proposal的投票。
· 参与Leader选举投票。

Observer

Observer服务器在工作原理上和Follower基本是一样的,和Follower唯一的区别在于,Observer不参与任何形式的投票,包括事务请求Proposal的投票和Leader选举投票。简单地讲,Observer服务器只提供非事务服务

相关文章:

  • 2021-10-24
  • 2022-12-23
  • 2021-11-09
  • 2022-01-12
  • 2021-05-17
  • 2021-12-28
  • 2022-12-23
猜你喜欢
  • 2021-05-06
  • 2021-05-31
  • 2021-12-13
  • 2021-11-03
  • 2021-06-21
  • 2021-06-24
  • 2021-07-29
相关资源
相似解决方案