tomcat三种工作模式介绍
io模型区别
| 类型 | 场景 | 特点 |
|---|---|---|
| bio | tomcat7及之前,同步模型 阻塞 | 一个线程处理一个请求,并发量高 线程数多,浪费资源 |
| nio | tomcat8 及以后,异步 非阻塞 | 可以通过少量的线程处理大量请求 |
| apr | 应对高并发场景 | tomcat对静态文件的处理性能,是在tomcat上运行高并发应用的首选模式 |
查看当前使用的io模型
cat catalina.out |grep nio

修改io模型
修改为nio模式
vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
查看修改结果catalina.out日志
cat catalina.out |grep nio2
12-Jun-2025 23:28:18.580 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["httpnio2-8080"]
12-Jun-2025 23:28:19.940 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio2-8080"]
修改为apr模式
# 安装apr环境
yum -y install apr apr-devel tomcat-native
vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
查看修改结果catalina.out日志
cat catalina.out |grep apr
12-Jun-2025 23:35:52.198 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["httpapr-8080"]
12-Jun-2025 23:35:53.565 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-ap-8080"]

浙公网安备 33010602011771号