io模型区别
模式 | ||
---|---|---|
bio | tomcat7及之前,同步模型 阻塞 | 一个线程处理一个请求,并发量高 线程数多,浪费资源 |
nio | tomcat8 及以后,异步 非阻塞 | 可以通过少量的线程处理大量请求 |
apr | 应对高并发场景 | tomcat对静态文件的处理性能 tomcat apr也是在tomcat上运行高并发应用的首选模式 |
查看当前使用的io模型
[root@muban logs]# cat catalina.out |grep nio
修改io模型
修改这里就可以修改io模型 比如:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443" />
[root@web03 /app/tomcat]# grep -ni nio2 conf/server.xml
69: <Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
查看修改结果-catalina.out日志
cat catalina.out |grep nio2
17-Dec-2019 10:46:33.106 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler
["http-nio2-8080"]
apr
#安装apr环境
yum -y install apr apr-devel tomcat-native
#修改8080和8009端口对应的server.xml
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
把Nio2 修改为Apr
protocol="org.apache.coyote.http11.Http11AprProtocol"
查看日志:
cat catalina.out |grep apr
17-Dec-2019 10:59:41.605 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler
["http-apr-8080"]
17-Dec-2019 10:59:41.621 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 3982 ms