文档章节

Tomcat:关于内部IO模型

wiitht
 wiitht
发布于 2017/07/13 10:34
字数 356
阅读 14
收藏 0

    我们一直希望在IO这一块能够以高性能的形式出现,所以迫切希望tomcat能够默认为NIO模式(实际默认为BIO);用NIO方式处理并发性能好的前提是每个请求耗时不能高,但是这样对现有的request response处理要有额外处理。如果不能达到这个要求,用 NIO反而会是整体性能下降(因为在整体的IO请求中如果很多响应都过慢整体上来说性能还是低的)。

   一般的请求处理流程: 请求进来,查数据库,执行业务逻辑,渲染,然后返回;整体耗时很长。当然Tomcat是基于大部分情况这样考虑的,如果你的场景特殊tomcat还是提供了其他的IO模式:

  1. BIO:默认的模式,性能非常低下,没有经过任何优化处理和支持.

  2.NIO:利用Java的异步io护理技术,no blocking IO技术.

  3.APR:安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.

  必须要安装apr和native,直接启动就支持apr。

  另外Tomcat本身受到servlet 3.0的限制并不能提供像netty一样的异步非阻塞IO模式;先来理解一下基于

Reactor模式的NIO机制:

 

© 著作权归作者所有

共有 人打赏支持
wiitht
粉丝 3
博文 158
码字总数 113941
作品 0
深圳
架构师
私信 提问
20140420技术交流活动总结

本次活动是我和葛莲莲女神一起搭档演讲,整个活动现场气氛都很不错,大家都能积极地参与讨论。 这次我的话题是Tomcat原理与实战,主要就是两个方面: 一,Tomcat的原理 这只老猫可以说是在jav...

和风赛跑
2014/04/23
0
8
【NIO系列】——之Netty

这是NIO系列的第四篇,欢迎继续关注: 【NIO系列】——之TCP探秘 【NIO系列】——之IO模型 【NIO系列】——之Reactor模型 如果你看过前面三篇文章,我们从最低层来分解NIO底层原理和使用方式,...

wier
2018/07/31
0
0
深度解读Tomcat中的NIO模型

一、I/O复用模型解读 Tomcat的NIO是基于I/O复用来实现的。对这点一定要清楚,不然我们的讨论就不在一个逻辑线上。下面这张图学习过I/O模型知识的一般都见过,出自《UNIX网络编程》,I/O模型一...

新栋BOOK
2017/11/06
0
13
深度解读Tomcat中的NIO模型

一、I/O复用模型解读 Tomcat的NIO是基于I/O复用来实现的。对这点一定要清楚,不然我们的讨论就不在一个逻辑线上。下面这张图学习过I/O模型知识的一般都见过,出自《UNIX网络编程》,I/O模型一...

新栋BOOK
2017/11/05
0
0
⛓简述同步与异步、阻塞与非阻塞

一、简述 最近对javasrcip的运行机制有在研究,这里是对一些知识点对一下拓展和展开,之前有记录过关于线程和进程的相关点,在学习过程中,有试过查阅网上的资料,网上资料感觉比较零散,有和...

Cc卿
2018/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 我想过年请假提前回家两天

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy :#每日一歌# 分享王力宏的单曲《爱错》 《爱错》- 王力宏 手机党少年们想听歌,请使劲儿戳(这里) @Caremorele :这几天起床有点...

小小编辑
14分钟前
4
0
Cookie 显示用户上次访问的时间

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.serv......

gwl_
今天
1
0
网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
今天
2
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0
day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部