ZooKeeper系统模型之Follower服务器。

        从角色名字上可以看出,Follower服务器是ZooKeeper集群状态的跟随者,其主要工作有以下三个。

  • 处理客户端非事务请求,转发事务请求给Leader服务器。
  • 参与事务请求Proposal的投票。
  • 参与Leader选举投票。

        和Leader服务器一样,Follower也同样使用了采用责任链模式组装的请求处理链来处理每一个客户端请求,由于不需要负责对事务请i去的投票处理,因此相对来说Follower服务器的请求处理链会简单一些,其请求处理链如下图所示。

        从上图中可以看到,和Leader服务器的请求处理链最大的不同点在于,Follower服务器的第一个处理器换成了FollowerRequestProcessor处理器,同时由于不需要处理事务请求的投票,因此也没有了ProposalRequestProcessor处理器。

FollowerRequestProcessor

        FollowerRequestProcessor是Follower服务器的第一个请求处理器,其主要工作就是识别出当前请求是否是事务请求。如果是事务请求,那么Follower就会将该事务请求转发给Leader服务器,Leader服务器在接收到这个事务请求后,就会将其提交到请求处理链,按照正常事务请求进行处理。

SendAckRequestProcessor

       SendAckRequestProcessor是Follower服务器上另外一个和Leader服务器有差异的请求处理器。在Leader服务器上有一个叫AckRequestProcessor的请求处理器,其主要负责在SyncRequestProcessor处理器完成事务日志记录后,向Proposal的投票收集器进行反馈。而在Follower服务器上,SendAckRequestProcessor处理器同样承担了事务日志记录反馈的角色,在完成事务日志记录后,会向Leader服务器发送ACK消息以表明自身完成了事务日志的记录工作。两者的唯一区别在于,AckRequestProcessor处理器和Leader服务器在同一个服务器上,因此他的ACK反馈仅仅是一个本地操作;而SendAckRequestProcessor处理器由于在Follower服务器上,因此需要通过以ACK消息的形式来向Leader服务器进行反馈。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值