Tomcat的运行模式
2024-09-04 10:44:25
tomcat的三种运行模式
tomcat
Tomcat Connector的三种不同的运行模式性能相差很大,有人测试
过的结果如下:
这三种模式的不同之处如下:
●BIO:
一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。
Tomcat7或以下,在Linux系统中默认使用这种方式。
●NIO:
利用Java的异步IO处理,可以通过少量的线程处理大量的请求。
Tomcat8在Linux系统中默认使用这种方式。
Tomcat7必须修改Connector配置来启动:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000" redirectPort="8443"/>
●APR:
即Apache Portable Runtime,从操作系统层面解决io阻塞问题。
Tomcat7或Tomcat8在Win7或以上的系统中启动默认使用这种方式。
Linux如果安装了apr和native,Tomcat直接启动就支持apr。(安装方法:http://www.cnblogs.com/nb-blog/p/5278502.html)
官方对这三种的区别的详细说明:
Java Blocking Connector Java Nio Blocking Connector APR/native Connector
BIO NIO APR
Classname AjpProtocol AjpNioProtocol AjpAprProtocol
Tomcat Version 3.x onwards 7.x onwards 5.5.x onwards
Support Polling NO YES YES
Polling Size N/A maxConnections maxConnections
Read Request Headers Blocking Sim Blocking Blocking
Read Request Body Blocking Sim Blocking Blocking
Write Response Blocking Sim Blocking Blocking
Wait for next Request Blocking Non Blocking Non Blocking
Max Connections maxConnections maxConnections maxConnections
Tomcat启动的时候,可以通过log看到Connector使用的是哪一种运行模式:
Starting ProtocolHandler ["http-bio-8080"]
Starting ProtocolHandler ["http-nio-8080"]
Starting ProtocolHandler ["http-apr-8080"]
例如:
本文参考社区文章
最新文章
- JS策略模式
- XSS攻击及防御
- [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(4)
- Bootstrap学习笔记系列2-------Bootstrap简单表格处理
- 如何更改UITextField 的placeholder 的字体颜色
- leveldb源码分析—Recover和Repair
- 转!Java关键字final、static使用总结
- Bone.io是一个轻量级的框架构建高性能实时单页HTML5应用程序
- java反射知识
- C#中接口和方法的运用(Fourteenth Day)
- UNIX网络编程卷1 时间获取程序server TCP 协议相关性
- leetcode第一刷_Minimum Path Sum
- Android自学反思总结(中)
- C语言--字符串和数字的相互转换
- java并发包分析之———volitale
- openjduge 求简单表达式的值
- zabbix3.4.6之监控Oracle
- springboot集成druid+mybatis连接oracle数据库
- 附加任务:团队作业7 Alpha冲刺
- apt 下载安装包
热门文章
- nodejs的process.on(&#39;message&#39;)转promise
- oracle12c之四 控制PDB操作 PDBLockdown Profiles
- 解决 jenkins 下使用 HTML Publisher 插件后查看 html 报告显示不正常
- Fiddler使用一(Fiddler简介)
- Flyway-使用步骤
- Objective-C中.h、.m、.mm的区别
- MySql的索引操作
- Gradient Optimization
- JDK12 concurrenthashmap源码阅读
- 初步理解impress.js