12.zookeeper原理解析-服务器端处理流程之处理器链
2015-05-13 20:08
351 查看
===================斩秋|http://blog.csdn.net/quhongwei_zhanqiu===============
这部分内容我们主要讲解zookeeper请求在zookeeper server端的处理流程,对于不同角色的zookeeper具有不同的处理流程, ZookeepeerServer的start方法中会调用setupRequestProcessors()来初始化处理器链,它被子类覆写实现。
![](https://img-blog.csdn.net/20150513200854472?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXVob25nd2VpX3poYW5xaXU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1. LeaderZooKeeperServer
![](https://img-blog.csdn.net/20150513200928651?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXVob25nd2VpX3poYW5xaXU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
看如上代码主要建立了如下的两个处理器流链
(1) PrepRequestProcessor(线程) => ProposalRequestProcessor(调initialize) =>CommitProcessor(线程) => Leader.ToBeAppliedRequestProcessor=>FinalRequestProcessor
(2) ProposalRequestProcessor构造器设置另一处理器链, initialize方法启动SyncRequestProcessor线程 SyncRequestProcessor(线程)=> AckRequestProcessor
![](https://img-blog.csdn.net/20150513201001583?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXVob25nd2VpX3poYW5xaXU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2. FollowerZooKeeperServer
![](https://img-blog.csdn.net/20150513201225278?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXVob25nd2VpX3poYW5xaXU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
看如上代码主要建立了如下的两个处理器流链
(1) FollowerRequestProcessor => CommitProcessor(线程) =>FinalRequestProcessor(线程)
(2) SyncRequestProcessor(线程)=> SendAckRequestProcessor
![](https://img-blog.csdn.net/20150513201253685?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXVob25nd2VpX3poYW5xaXU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3. ObserverZooKeeperServer
![](https://img-blog.csdn.net/20150513201324760?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXVob25nd2VpX3poYW5xaXU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(1) ObserverRequestProcessor => CommitProcessor(线程) =>FinalRequestProcessor(线程)
(2) SyncRequestProcessor(线程)=> SendAckRequestProcessor
(3) 看如上代码主要建立了如下的两个处理器流链
![](https://img-blog.csdn.net/20150513201210985?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXVob25nd2VpX3poYW5xaXU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
===================斩秋|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===============
相关文章推荐
- 13.zookeeper原理解析-服务器端处理流程之处理器详解
- 14.zookeeper原理解析-服务器端处理流程之交互图
- zookeeper原理解析-服务器端处理流程
- Zookeeper系列(二十四)Zookeeper原理解析之处理流程
- 秋色园QBlog技术原理解析:认识整站处理流程(二)
- 秋色园QBlog技术原理解析:认识整站处理流程(二)
- 秋色园QBlog技术原理解析:认识整站处理流程(二)
- 秋色园QBlog技术原理解析:认识整站处理流程(二)
- 我记录网站综合系统 -- 技术原理解析[3:我记录框架处理流程]
- 秋色园QBlog技术原理解析:认识整站处理流程(二)
- 秋色园QBlog技术原理解析:页面内容填充及多语言翻译流程演示示例(十)
- 秋色园QBlog技术原理解析:Module之页面基类-生命周期流程(六)
- 架构与反射——Struts2开发过程与处理流程解析
- Request 接收参数乱码原理解析一:服务器端解码原理
- DNS原理及解析流程
- zookeeper原理解析-客户端与服务器端交互
- ATMS工作流程原理解析
- LLBL Gen 3.x 源代码追踪与解析 验证Validation的原理和流程
- 我记录网站综合系统 -- 技术原理解析[10:PermissionChecker流程]
- Mybatis 代码流程及实现原理解析(二)