文档章节

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
粉丝 2
博文 158
码字总数 113789
作品 0
深圳
架构师
20140420技术交流活动总结

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

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

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

wier
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
Linux IO模型与Java NIO

概述 看Java NIO一篇文章的时候又看到了“异步非阻塞”这个概念,一直处于似懂非懂的状态,想解释下到底什么是异步 什么是非阻塞,感觉抓不住重点。决定仔细研究一下。 本文试图研究以下问题...

yingtju
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringData JPA 在解析实体类字段时驼峰自动添加下划线问题

SpringData JPA 使用的默认命名策略是: ImprovedNamingStrategy 。用下划线转换驼峰名,如 authorId ,转换成 author_id 。这样就遇到了一个问题:实体中驼峰命名的列名转换成下划线后,在M...

Jacktanger
29分钟前
1
0
Android JNI开发系列(十)JNI访问 Java 实例变量和静态变量

JNI访问 Java 实例变量和静态变量 Java 中的实例变量和静态变量,在本地代码中如何来访问和修改。静态变量也称为类变量(属性),在所有实例对象中共享同一份数据,可以直接通过类名.变量名来...

蔡小鹏
34分钟前
1
0
jsapi4加载的首个图层的范围被默认作为地图范围,且不能修改的解决

在map加载的第一个图层的图层范围(fullExtent),会被默认设置为map的全图范围,且不能更改,从一般地图控件角度来说,应该有fullExtent属性,作为地图的全图范围,但很遗憾jsapi4.9还没有 ...

canneljls
34分钟前
2
0
JSON.stringify()

JSON.parse()与JSON.stringify()的区别 JSON.parse()【从一个字符串中解析出json对象】 例子: //定义一个字符串 var data='{"name":"goatling"}' //解析对象 JSON.parse(data) 结果是: na...

废柴
35分钟前
1
0
HashSet

前言 Set的实现类都是基于Map来实现的(HashSet是通过HashMap实现的)。 构造图如下: 蓝色线条:继承 绿色线条:接口实现 正文 对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保...

狼王黄师傅
37分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部