Tomcat Connector的三种运行模式【bio、nio、apr】

Tomcat Connector的三种运行模式【bio、nio、apr】

bio(blocking I/O,阻塞式I/O操作),表示Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。默认的模式,性能最差,没有经过任何优化处理和支持。

nio(non-blocking I/O),Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API。拥有比传统I/O操作(bio)更好的并发运行性能。要让Tomcat以nio模式来运行,修改配置文件:tomcat/conf/server.xml

修改protocol的值为org.apache.coyote.http11.Http11NioProtocol

重启Tomcat后生效。

apr(Apache Portable Runtime/Apache可移植运行时库),Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能。从操作系统级别来解决异步的IO问题,大幅度的提高性能。 Tomcat apr也是在Tomcat上运行高并发应用的首选模式。

要让Tomcat以apr模式来运行,必须安装apr和native

安装apr:yum -y install apr apr-devel apr-utils

安装native:

源码包下载链接:https://archive.apache.org/dist/tomcat/tomcat-connectors/native/

tar xzfv tomcat-native-1.2.28-src.tarcd tomcat-native-1.2.28-src/native/./configure --with-apr=/usr/bin/apr-1-config --prefix=/usr/local/jdk-1.x.xmake && make install

整合Tomcat apr

设置环境变量方法一:在/bin/catalina.sh中增加1行(在echo “Using CATALINA_BASE: $CATALINA_BASE”的上一行添加)CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"

方法二:在/etc/profile中加入export CATALINA_OPTS=-Djava.library.path=/usr/local/apr/lib使配置生效:source /etc/profile

方法三:修改配置文件:tomcat/conf/server.xml

修改protocol的值为org.apache.coyote.http11.Http11NioProtocol

查看Tomcat Connector运行模式方法一:在http://x.x.x.x:8080/manager/status 中查看服务器状态

方法二:根据Tomcat启动日志信息判断

bio

INFO: Initializing ProtocolHandler ["http-bio-8080"]Aug 04, 2015 10:20:35 PM org.apache.coyote.AbstractProtocol initnio

INFO: Initializing ProtocolHandler ["http-nio-8080"]Aug 04, 2015 10:27:58 PM org.apache.coyote.AbstractProtocol initapr

INFO: Initializing ProtocolHandler ["http-apr-8080"]Aug 04, 2015 10:33:45 PM org.apache.coyote.AbstractProtocol init

相关数据

web应用如何有效处理爬虫
365BET是不是上市了

web应用如何有效处理爬虫

⌛ 12-06 👁️‍🗨️ 9546
怎么做jpg格式照片?六大方法集合!
365BET是不是上市了

怎么做jpg格式照片?六大方法集合!

⌛ 02-14 👁️‍🗨️ 8435
为什么要做版本控制:Git在协作开发中的重要性
mobileBET365

为什么要做版本控制:Git在协作开发中的重要性

⌛ 11-08 👁️‍🗨️ 1421
抗议纵容以色列,美国各地示威者白宫外组成“红线”
365BET是不是上市了

抗议纵容以色列,美国各地示威者白宫外组成“红线”

⌛ 12-27 👁️‍🗨️ 6119
在 iPhone 上开始使用番茄钟
365BET是不是上市了

在 iPhone 上开始使用番茄钟

⌛ 10-24 👁️‍🗨️ 2058