单线程版本
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.doc"指向的是关于如何在Java中实现可扩展的I/O操作,这通常是通过使用NIO库来实现的。NIO的核心理念是允许程序在等待数据就绪时执行其他任务,而不是简单地阻塞等待。这种模型在处理多个...
Scalable IO in Java是java.util.concurrent包的作者,大师Doug Lea关于分析与构建可伸缩的高性能IO服务的一篇经典文章,在文章中Doug Lea通过各个角度,循序渐进的梳理了服务开发中的相关问题,以及在解决问题的...
《Scalable IO in Java》是由Java领域的大师Doug Lea撰写的一份PPT文档,主要探讨了如何在Java环境中实现可扩展的I/O处理。本文将深入解析这份文档及其翻译,带你理解Reactor模式的设计原理及其在Java中的应用。 ...
### Scalable IO in Java:详解Java NIO与网络服务扩展性设计 #### 一、概述 在《Scalable IO in Java》这篇文章中,作者Doug Lea深入探讨了如何利用Java NIO(非阻塞I/O)技术实现可扩展的网络服务。随着互联网...
这本书对于理解Java平台上的并发和IO机制,特别是对于那些需要处理大量数据或构建高并发应用的开发者来说,是不可或缺的学习资料。 在Java中,IO(Input/Output)操作是程序与外部世界交互的关键途径,包括读取文件...
《Scalable IO in Java》是由Java领域的大师Doug Lea撰写的一本关于高效I/O处理的著作。这本书深入探讨了在Java环境中如何构建可扩展的输入/输出系统,特别关注了Reactor模式,这是一种用于处理大量并发I/O事件的...
通过学习《Scalable IO in Java》,开发者能够掌握如何在Java应用程序中有效地利用NIO进行高性能的I/O操作,这对于构建大型、高并发的网络服务,如Web服务器、数据库服务器等,具有重要的指导意义。不过,由于书籍为...
从提供的文件列表来看,"Scalable IO in Java -Doug Lea.pdf"可能是该主题的详细论述,而"1.pptx"可能是相关的演示文稿或课程幻灯片,它们将更深入地阐述这些概念并提供实例分析。阅读这些材料,开发者可以学习如何...
在深入探讨《Scalable IO in Java》的中文版内容之前,首先需要了解Java中的I/O模型发展历程及其在服务器编程中的重要性。在Java中,I/O处理经历了从传统的BIO(阻塞I/O),到NIO(非阻塞I/O),再到AIO(异步I/O)...
本文将介绍Scalable IO in Java一书,其作者是Doug Lea,他同时也是Java并发编程领域的权威。在这本书中,Lea深入探讨了Java NIO(非阻塞IO)和Reactor设计模式之间的关系,并且解释了如何通过它们来构建可扩展的...
《Doug Lea Scalable IO in Java》是一本深入探讨Java NIO(非阻塞I/O)和反应器设计模式的经典著作。作者Doug Lea是Java并发领域的权威,他对Java性能优化和系统设计有着深刻的洞察力。这本书对于理解如何在Java...
文件标题和描述提到了Java中的可伸缩IO(Scalable IO in Java),文档的标签为“nio”,即Java的非阻塞IO(New I/O),这是Java在1.4版本中引入的一个新的包java.nio,为IO提供了一种新的方式。 首先,文档提到了...
Scalable IO in Java 关注的是在网络服务场景下如何实现高效、可扩展的输入输出处理。在Java中,尤其在处理高并发的网络连接时,传统的阻塞IO模型(如基于`java.io`的`ServerSocket`)可能会成为性能瓶颈,因为它会...
《Scalable IO in Java by Doug Lea》是Java NIO领域的经典文献,由Java并发包(java.util.concurrent)的设计者Doug Lea撰写。NIO,全称非阻塞输入/输出(Non-blocking Input/Output),是Java平台从1.4版本开始引入...
总结来看,Scalable IO in Java一文深入阐述了如何通过反应器模式和事件驱动的处理来构建可扩展的Java网络服务。文章强调了在系统设计中采用分而治之的策略来实现服务的水平和垂直扩展,同时保证系统在面对高负载和...
在服务端,注册服务对某个端口进行监听,然后使用阻塞的accept()函数,来取出请求队列中的socket,或者一直等待,直到收到客户端的请求。连接建立后,服务端接受输入流进行处理,返回结果给客户端。...