12.zookeeper原理解析-服务器端处理流程之处理器链

===================斩秋|http://blog.csdn.net/quhongwei_zhanqiu===============

这部分内容我们主要讲解zookeeper请求在zookeeper server端的处理流程,对于不同角色的zookeeper具有不同的处理流程, ZookeepeerServer的start方法中会调用setupRequestProcessors()来初始化处理器链,它被子类覆写实现。

 

1.      LeaderZooKeeperServer


看如上代码主要建立了如下的两个处理器流链

(1)    PrepRequestProcessor(线程) => ProposalRequestProcessor(调initialize) =>CommitProcessor(线程) => Leader.ToBeAppliedRequestProcessor=>FinalRequestProcessor

(2)  ProposalRequestProcessor构造器设置另一处理器链, initialize方法启动SyncRequestProcessor线程 SyncRequestProcessor(线程)=> AckRequestProcessor


2.      FollowerZooKeeperServer


看如上代码主要建立了如下的两个处理器流链

(1)  FollowerRequestProcessor  => CommitProcessor(线程)  =>FinalRequestProcessor(线程)

(2)  SyncRequestProcessor(线程)=> SendAckRequestProcessor


3.      ObserverZooKeeperServer


(1)    ObserverRequestProcessor => CommitProcessor(线程)  =>FinalRequestProcessor(线程)

(2)    SyncRequestProcessor(线程)=>  SendAckRequestProcessor

(3)    看如上代码主要建立了如下的两个处理器流链


   

===================斩秋|http://blog.csdn.net/quhongwei_zhanqiu===============

猜你喜欢

转载自blog.csdn.net/u010311445/article/details/45697533