单线程版本
reactor就是一个分发器
当收到client的accept请求时,转给acceptor来处理
当收到client socket的read请求时,转给handler处理
整个处理过程因为是单线程,都是阻塞的。
多线程版本
与单线程版本不同之处是
在handler中的read之后,write之前的业务处理部分
采用线程池来处理业务代码
整个设计不会因为业务部分太耗时而导致整个系统性能过低
多reactor版本
mainReactor单独用来处理client的连接请求,交给acceptor处理
acceptor接受了client连接后,交给subReactor来监听
subReactor来分发client的请求,交给相应的handler来处理
此模式中subReactor可以有多个,一般来说个数和cpu数相同
netty版本
netty在多reactor版本的基础上削减了线程池
当你的cpu数是1时,你相当于退化到单线程版本了
当碰到业务处理时间较长时,可以添加线程池部分
通过在netty的pipeline中添加ExecutionHandler即可
- 大小: 34.2 KB
- 大小: 59 KB
- 大小: 61.8 KB
分享到:
相关推荐
Scalable IO in Java,讲解Java nio的经典
nio.pdf 博文链接:https://shenkun-918.iteye.com/blog/965654
Scalable in in java .Doug Lee的著作,学习线程模型必备。
Scalable IO in Java是java.util.concurrent包的作者,大师Doug Lea关于分析与构建可伸缩的高性能IO服务的一篇经典文章,在文章中Doug Lea通过各个角度,循序渐进的梳理了服务开发中的相关问题,以及在解决问题的...
Scalable IO in Java -Doug Lea.rarScalable IO in Java -Doug Lea.rar
doug lea 大神 Reactor 说明 Scalable IO in Java 原文必读 原文必读 原文必读
Doug Lea大神的一篇PPT文档和翻译文档,里面介绍了多种Reactor模型的设计,注意是借助翻译软件进行的翻译。
由doug lea 写的pdf,全是英文的,需要大家自己翻译一下
Scalable IO in Java -Doug Lea 描述java nio 和reactor 设计模式之间的关系
网上都是不带书签,并且有些地方翻译有歧义。 所以我整理了一个。 特点:带书签 Scalable io in java 中文版,并且对有歧义的语义进行了修改。
Scalable IO in Java.pdf
Scalable IO in Java -Doug Lea 学习NIO必看经典 描述java nio 和reactor 设计模式之间的关系
Java NIO学习文档。值得学习。reactor 设计模式。作者Doug Lea。java.util.concurrent包的作者
在服务端,注册服务对某个端口进行监听,然后使用阻塞的accept()函数,来取出请求队列中的socket,或者一直等待,直到收到客户端的请求。连接建立后,服务端接受输入流进行处理,返回结果给客户端。...
Scalable network services,Event-driven processing,Reactor pattern and so on。
Java并发编程原汁原味英文版,Doug Lea大神经典著作, 内容:Concurrency Models, design forces, Java Designing objects for concurrency Immutability, locking, state dependence, containment, splitting ...