暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Tomcat三种连接器比较

原创 刘韬 2023-09-17
202


1. tomcat连接器

Tomcat Connector(Tomcat连接器)有三种运行模式:bio、nio、apr

BIO

Bio(Blocking I/O),顾名思义,即阻塞I/O操作,说明Tomcat使用的是传统的Java I/O操作(即Java.IO包和子包)。Tomcat默认以BIO模式运行。不幸的是,一般来说,BIO模式是三种工作模式中的性能最差的。我们可以通过Tomcat Manager查看服务器当前的状态。

 

NIO

是 Java SE 1.4 及后续版本(即 java.nio 包和子包)提供的新 I/O 操作。Java NIO 是一种基于缓冲区的 Java API,可以提供非阻塞 I/O 操作,因此 NIO 也被视为非阻塞 I/O 的缩写。与传统的I/O操作(BIO)相比,它具有更好的并发操作性能。

 

APR

(Apache Portable Runtime / Apache),是 Apache HTTP 服务器的支持库。可以简单理解为Tomcat会在JNI中调用Apache HTTP服务器的核心动态链接库来处理文件读取或者网络传输操作,这样就大大提高了Tomcat对静态文件的处理性能。Tomcat APR也是在Tomcat上运行高并发应用程序的首选模式。

2. 查看Tomcat Connector运行模式

方法一:在http://xxxx:8080/manager/status中查看服务器状态

 

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

INFO: Initializing ProtocolHandler ["http-bio-8080"]

Aug 04, 2015 10:20:35 PM org.apache.coyote.AbstractProtocol init

 

INFO: Initializing ProtocolHandler ["http-nio-8080"]

Aug 04, 2015 10:27:58 PM org.apache.coyote.AbstractProtocol init

 

INFO: Initializing ProtocolHandler ["http-apr-8080"]

Aug 04, 2015 10:33:45 PM org.apache.coyote.AbstractProtocol init

 

3. 安装Tomcat APR环境

源码编译安装APR

1. 安装环境

$ sudo apt install -y gcc make  libtool  libexpat1-dev

2. 安装Apache Portable Runtime (APR)

Official address:https://apr.apache.org/compiling_unix.html
Compilation and installation APR

wget http://mirrors.shu.edu.cn/apache//apr/apr-1.6.5.tar.gz

tar zxf apr-1.6.5.tar.gzcd apr-1.6.5/

./configure --prefix=/usr/local/apache-apr

make

sudo make install

Compilation APR-ICONV

wget http://mirrors.shu.edu.cn/apache//apr/apr-iconv-1.2.2.tar.gz

tar zxf apr-iconv-1.2.2.tar.gzcd apr-iconv-1.2.2/

./configure --prefix=/usr/local/apache-apr-iconv --with-apr=/usr/local/apache-apr

make

sudo make install

Compilation APR-UTIL

wget http://mirrors.shu.edu.cn/apache//apr/apr-util-1.6.1.tar.gz

ubuntu@xxxxx:~/apr-util-1.6.1$ ./configure --prefix=/usr/local/apache-apr-util --with-apr=/usr/local/apache-apr --with-apr-iconv=/usr/local/apache-apr-iconv/bin/apriconv

tar zxf apr-util-1.6.1.tar.gzcd apr-util-1.6.1/

make

sudo make install

3. 编译安装 OpenSSL

wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz

$ sudo mkdir /usr/local/openssl

$ tar zxf openssl-1.1.1a.tar.gz

$ ./config --prefix=/usr/local/opensslcd openssl-1.1.1a

$ make

$ sudo make install

4. 编译安装tomcat Native

wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-connectors/native/1.2.19/source/tomcat-native-1.2.19-src.tar.gz

tar zxf tomcat-native-1.2.19-src.tar.gz

$ cd tomcat-native-1.2.19-src/native/

$ ./configure --prefix=/usr/local/native --with-ssl=/usr/local/openssl --with-apr=/usr/local/apache-apr/bin/apr-1-config

$ make

$ sudo make install

4. 配置APR连接器

root@xxxxx:/var/www/demo# cat bin/setenv.sh export JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

 

    <Connector port="8080"

               protocol="org.apache.coyote.http11.Http11AprProtocol"

               connectionTimeout="20000"

               redirectPort="8443" />

    ...

    <!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->

5. 三种模式的性能比较


来自netizens

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论