io模型区别

模式
bio tomcat7及之前,同步模型 阻塞 一个线程处理一个请求,并发量高 线程数多,浪费资源
nio tomcat8 及以后,异步 非阻塞 可以通过少量的线程处理大量请求
apr 应对高并发场景 tomcat对静态文件的处理性能 tomcat apr也是在tomcat上运行高并发应用的首选模式

查看当前使用的io模型

[root@muban logs]# cat catalina.out |grep nio

null

修改io模型

null

修改这里就可以修改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

results matching ""

    No results matching ""