0

tomcat(2)运行模式

 2 years ago
source link: https://wakzz.cn/2018/04/15/tomcat/(2)%E8%BF%90%E8%A1%8C%E6%A8%A1%E5%BC%8F/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

tomcat支持3种运行模式,分别为bio、nio、apr,三者效率bio < nio < apr。其中tomcat7默认使用bio。

2.1、bio

默认的模式,性能非常低下,没有经过任何优化处理和支持. 一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。
Tomcat7或以下,在Linux系统中默认使用这种方式。

这里写图片描述

2.2、nio

nio(new I/O),是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。
利用Java的异步IO处理,可以通过少量的线程处理大量的请求。
Tomcat8在Linux系统中默认使用这种方式。

2.3、apr

安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.
即Apache Portable Runtime,从操作系统层面解决io阻塞问题。
Linux如果安装了apr和native,Tomcat直接启动就支持apr。

3、启动NIO模式

修改conf/server.xml,修改

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

中的protocol值,改为org.apache.coyote.http11.Http11NioProtocol

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />

启动tomcat后控制台输出如图内容:

这里写图片描述

4、启动apr模式

4.1、安装apr依赖

yum install -y openssl-devel apr-devel

4.2、安装apr

进入tomcat安装目录下,解压tomcat-native.tar.gz:

cd apache-tomcat-7.0.77/bin
tar -zxvf tomcat-native.tar.gz
cd tomcat-native-1.2.12-src/native/

编译安装:

./configure
make && make install

动态库默认安装在/usr/local/apr/lib目录

4.3、配置apr路径

编辑tomcat路径下bin/catalina.sh文件,最上方添加如下内容:

JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

4.4、修改配置文件

修改conf/server.xml,修改

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

中的protocol值,改为org.apache.coyote.http11.Http11AprProtocol

<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocoll"
connectionTimeout="20000"
redirectPort="8443" />

启动tomcat后控制台输出如图内容:

这里写图片描述


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK