从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(三)
2019独角兽企业重金招聘Python工程师标准>>>
从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(三) 博客分类: java
最后我们再看看NIO方面最著名的框架Mina,抛开Mina有关session和处理链条等方面的设计,单单挑出前端网络层处理来看,也采用的是与Jetty和Tomcat类似的模式,只不过它做了些简化,它没有隔开请求侦听和请求处理两个阶段,因此,宏观上看它只分为两个阶段。
先看看它的类图:
其中:
SocketAcceptor起线程调用SocketAcceptor.Work负责新连接侦听,并交给SocketIoProcessor处理
SocketIoProcessor起线程调用SocketIoProcessor.Work负责侦听所管辖的channel队列, select到新请求后交给IoFilterChain处理
IoFilterChain组装了mina的处理链条
在整个服务端处理请求的过程可以分为两个阶段,时序图如下所示:
阶段一:监听并建立连接
阶段二: 监听并处理客户端的请求
总结来看Jetty、tomcat和Mina,我们也大概清楚了该如何基于NIO来构架网络服务器,通过这个提炼出来的模式,我写了个很简单的NIO Server,在保持连接的情况下,可以很轻松的保持6万连接(由于有65535连接限制),并能在负载只有3左右的情况下(4核),承担3到4万的TPS请求(当然做的事情很简单,仅仅是把buffer转化为自定义协议的包,然后再把包转为buffer写到客户端)。因此简单地实践一下可以证明这个模式的有效性,不妨再看看这个图,希望对大伙以后写server有用:
http://blog.csdn.net/cutesource/article/details/6192163
转载于:https://my.oschina.net/xiaominmin/blog/1599305
从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(三)相关推荐
- 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(二)
本文转载自 http://blog.csdn.net/cutesource/article/details/6192145 下面再来看看Tomcat是如何使用NIO来构架Connector这块的. 先 ...
- 从100套真题中提炼而出的100个经典句子
1. Typical of the grassland dwellers of the continent is the American antelope, or pronghorn. 1.美洲羚羊 ...
- 虚拟机中连接外部无线网络
前言 在使用虚拟机中ubuntu与JetsonTX2实现ssh连接时,需要将虚拟机中操作系统与外部系统连接. 配置简介: 物理主机win10.VMware15pro.ubuntu18.04 参考 在虚 ...
- springBoot中jetty tomcat undertow对比与undertow线程池配置
springBoot中jetty tomcat undertow对比 1)tomcat优点是稳定性好.可靠性高.支持 Servlet 和 JSP 等标准.构建中小型的 Web 应用程序,可以选择 To ...
- java中的NIO,BIO,AIO
IO,input和output,Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中. IO是什么?为什么需要IO? java在1.4之前,提供的是BIO,也就是ja ...
- mina 中的IoBufer(一)
为什么80%的码农都做不了架构师?>>> IoBuffer 是 MINA 中的独有接口,主要继承实现的是 java NIO 中的 ByteBuffer ,所以从使用方法上来看二 ...
- 天生一对Maven2+Jetty -- Maven2创建并管理WebApp,并使用Maven Jetty Plugin在Eclipse中调试...
天生一对"Maven2+Jetty" -- Maven2创建并管理WebApp,并使用Maven Jetty Plugin在Eclipse中调试 Maven2代比1代改进很多,其中 ...
- Tomcat Connector的BIO与NIO模式的比较及区别
详细介绍了Tomcat的Connector组件的BIO和NIO模式以及工作流程. 上一篇文章:Tomcat的核心组件以及server.xml配置全解[一万字]中,我们简单介绍了Connector组件的 ...
- nginx反向代理(proxy_pass)tomcat的过程中,session失效的问题解决
nginx反向代理(proxy_pass)tomcat的过程中,session失效的问题解决 参考文章: (1)nginx反向代理(proxy_pass)tomcat的过程中,session失效的问题 ...
最新文章
- 超像素、语义分割、实例分割、全景分割 傻傻分不清?
- LINUX常用命令(基础)
- 为什么1900年不是闰年
- Basic链表与队列的区别
- 1039: 二哥的困惑 Ⅱ
- 想使用Docker容器?先看看这些注意事项
- 常用的寄存器( bss段的作用)
- leetcode刷题:搜索旋转排序数组
- Qt中图像的显示与基本操作
- oracle 正则表达式2
- jQuery中,$.extend,$obj.extend和$.fn.extend三者的区别
- Collection与Arrays
- 索宝机器人_这些莞味十足的旅游商品获奖了!你尝过没?
- 计算机课会点名吗,大学课堂点名技术日新月异:电脑摇号扫码上课
- HDFS加密存储(HDP、Ranger、Ranger KMS实现)
- ZAO作一下,你会是谁
- Mac如何破解管理员密码
- C语言 三子棋 游戏
- 浅析ARM公司在物联网领域的战略布局
- Mac OS X pl2303 的驱动下载
热门文章
- DevOps笔记-06:什么是CI/CD?它们与敏捷开发和devops的关系?
- Which of the following statement(s) equal(s) value 1 in C programming language?
- 第二十一讲 任务的删除
- 记录奥林比克/课程录制 洛谷P2255 [USACO14JAN]
- 阿里内核月报2015年03月
- 《JavaScript数据可视化编程》——1.4 用离散图表绘制x/y值
- 分布式 Socket 通信
- Appcan页面跳转
- OSI七层模型具体解释
- AutoCAD 2013