1. 程式人生 > >tomcat9 更換運行模式為 Apr 模式

tomcat9 更換運行模式為 Apr 模式

oca wget 服務器 catalina info main ups com 創建

Tomcat支持三種接收請求的處理方式:BIO、NIO、APR 。

1. BIO由於每個請求都要創建一個線程來處理,線程開銷比較大,不能再高並發的場景,性能也是最低的。
2. NIO是一個基於緩沖區、並能提供非阻塞I/O操作的Java API,比傳統的bio更好的並發性能。
3. APR(Apache Portable Run-time libraries)簡單理解,就是從操作系統級別解決異步IO問題,大幅度的提高服務器的處理和響應性能, 也是Tomcat運行高並發應用的首選模式。 

所需軟件

* apr
* apr-iconv
* apr-util
* tomcat-native

安裝軟件

yum install -y apr-devel openssl-devel gcc make expat-devel libtool

cd /usr/local/src
wget  https://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz

tar xf apr-1.6.3.tar.gz
cd apr-1.6.3/
./configure --prefix=/usr/local/apr
make && make install

cd /usr/local/src
wget https://mirrors.cnnic.cn/apache/apr/apr-iconv-1.2.2.tar.gz
tar xf apr-iconv-1.2.2.tar.gz
cd apr-iconv-1.2.2/
./configure   --with-apr=/usr/local/apr  --prefix=/usr/local/apr-iconv
make && make install

cd /usr/local/src
wget  https://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
tar xf apr-util-1.6.1.tar.gz  
cd apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr   --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv
make && make install

cd /usr/local/tomcat/bin/
tar xf tomcat-native.tar.gz
cd  /usr/local/tomcat/bin/tomcat-native-1.2.16-src/native

./configure --with-apr=/usr/local/apr  --with-java-home=/usr/local/jdk8.0     
make && make install

echo ‘export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/apr/lib‘ >> /etc/profile

source /etc/profile

修改配置

vim /usr/local/tomcat/conf/server.xml

<Connector      port="80"        protocol="org.apache.coyote.http11.Http11AprProtocol"
                maxThreads="1000"
                minSpareThreads="100"
                acceptCount="900"
                disableUploadTimeout="true"
                connectionTimeout="20000"
                URIEncoding="UTF-8"
                enableLookups="false"
                redirectPort="8443"
                compression="on"
                compressionMinSize="1024"
               />

<!-- Define an AJP 1.3 Connector on port 8009 -->  ##註釋掉下面那行,如果不用apache
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  -->    

測試

/usr/local/tomcat/bin/catalina.sh run

24-Jan-2018 21:39:17.695 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-80"]

tomcat9 更換運行模式為 Apr 模式