tomcat的三种运行模式
2023-09-14 09:15:46 时间
Tomcat Connector的三种不同的运行模式性能相差很大,有人测试
过的结果如下:
这三种模式的不同之处如下:
●BIO:
一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。
Tomcat7或以下,在Linux系统中默认使用这种方式。
●NIO:
利用Java的异步IO处理,可以通过少量的线程处理大量的请求。
Tomcat8在Linux系统中默认使用这种方式。
Tomcat7必须修改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。(安装方法:centos6.3(64位) 安装apr - だā简ゑ箪ャ - 博客园)
官方对这三种的区别的详细说明:
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"]
例如:
相关文章
- 在系统下文件上传报错:The temporary upload location [/tmp/tomcat.xxx/work/Tomcat/localhost/ROOT] is not valid
- Tomcat 配置 项目 到tomcat目录外面 和 域名绑定访问(api接口、前端网站、后台管理网站)
- spring boot tomcat 打本地包成war,通过Tomcat启动时出现问题: ZipException: error in opening zip file
- tomcat 启动日志乱码,idea中运行Tomcat也出现中文乱码:“淇℃伅”
- SpringBoot之打成war包部署到Tomcat
- Nginx+Tomcat动静分离及Nginx优化(企业案例)
- 【实施工程师之家】linux安装tomcat(yum安装tomcat)
- idea配置tomcat必坑指南
- idea 开启 tomcat 热部署 的 具体流程 和 使用方式
- tomcat的内存配置,关于-Xms -Xmx -XX:PermSize -XX:MaxPermSize的理解和区别
- 008-tomcat源码阅读-查看源码、日志配置、启动配置、启动
- 【项目实战】基于Tomcat服务器实现Debug模式下服务不用重启的指引设置
- tomcat Context容器(中):Tomcat如何隔离Web应用?
- 通过JConsoler监控Tomcat的JVM内存
- Tomcat安全优化
- 【云原生】prometheus结合jmx exporter 的java agent模式采集tomcat监控实战