Tomcat运行模式
Tomcat的运行模式有3种。
bio模式
bio(blocking I/O),阻塞式I/O操作,表示Tomcat使用的是传统的Java I/O操作(即java.io包及其子包),对于每一个请求都要创建一个线程来进行处理,所以开销较大不适合处理高并发的场景。
nio模式
nio是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包),基于缓冲区、并能提供非阻塞I/O操作的Java API实现,比传统的I/O处理方式(bio)有更高的并发运行性能。是Tomcat8的默认运行模式。
apr模式
apr(Apache Portable Runtime/Apache可移植运行库)是Apache HTTP服务器的支持库。从操作系统级别解决异步I/O问题,大幅度提高服务器的并发处理性能,也是Tomcat生产环境运行的首选方式。要tomcat支持apr,必须安装apr和native,这样tomcat才可以利用apache的apr接口,使用操作系统的部分本地操作,从而提升性能。
Tomcat APR
安装APR
1 | # yum -y install apr apr-devel gcc gcc-c++ openssl-devel openssl |
解压Tomcat Native包,编译安装
此包在apache-tomcat-8.5.37/bin目录下
1 | # tar zxvf tomcat-native.tar.gz |
说明:./configure有两个参数需要注意下,–with-apr=/usr/提供的是查找apr的路径可以更详细的一点,–with-java-home后面跟随的地址要和”echo $JAVA_HOME”输出地址一致。
根据安装完成后的提示操作
把库添加到/etc/ld.so.conf
1 | # vim /etc/ld.so.conf |
配置环境变量
1 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib //新增一行 |
配置APR
修改conf/server.xml里的协议
修改conf/server.xml里的协议,这个协议是
1 | <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" |
在bin/catalina.sh中引用apr
1 | # vim /usr/local/tomcat8.5/bin/catalina.sh |