一、tomcat native 是什么?二、tomcat 运行的三种模式三、使用过程
1. 环境准备2. tomcat-native 安装编译3. 指向本地库文件 四、验证总结
一、tomcat native 是什么?
Tomcat Native 是一个利用 APR 来提升Tomcat性能的本地API,底层是用 JNI 的原理来实现的。他是一个可选的库,默认是不使用的,可以通过编译构建出库文件,在tomcat的配置指向并使用库文件,从而提升Tomcat性能。
二、tomcat 运行的三种模式很多人不清楚 APR 是什么?
APR(Apache portable Run-time libraries,Apache可移植运行库),主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。
听不懂没关系,下面直接简要介绍下 tomcat 包含的三种运行模式,和 tomcat 中 APR 模式到底是什么意思:
BIO
bio(blocking I/O),阻塞式I/O,表示Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。该模式运行性能最低,在早期,tomcat6 及之前,只有这一种运行模式。
NIO
nio(non-blocking I/O)非阻塞式I/O,他是一个基于缓冲区来操作的,比传统I/O操作(bio)发挥更好的并发运行性能。在 tomcat6 之后提供了nio的实现,但默认模式仍然是bio,而在tomcat8 以后默认模式就是nio
APR
(Apache Portable Runtime/Apache可移植运行库),是Apache HTTP服务器的支持库。你可以简单地理解为,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能
本片文章是在 linux 环境下使用 tomcat native,他依赖 gcc 、 APR
依赖环境和库文件的安装:
yum install gcc yum install apr yum install apr-devel yum install apr-util2. tomcat-native 安装编译
下载 tomcat-native 的源码包 下载连接
注意:Linux 环境请下载 tar.gz 后缀的文件,该 tomcat-native 版本我是对应 tomcat 9.0.58 的解压缩
tar -zxvf tomcat-native-1.2.31-src.tar.gz
编译
进去解压的 tomcat-native 的 native 目录
./configure && make && make install3. 指向本地库文件
上面的步骤最后在目录 /usr/local/apr/lib 下生成了本地库文件(如果没有就代表上面步骤失败了)
我们要想 tomcat 启动使用 APR模式,还需要修改配置文件,使 tomcat 以 APR 模式启动,并且在启动时可以读取到刚才生成的本地库文件。
修改 tomcat 的 conf 下的配置文件 server.xml
将上面的替换成下面的
指定tomcat启动的本地库读取(3种方式)
- 拷贝过去系统库,因为在 Linux 下 tomcat 启动也会去读取系统库 /usr/lib/
cp /usr/local/apr/lib/libtcnative* /usr/lib/
我是使用这种方式,下面两种方式大家可以自行百度解决
配置环境变量指向/usr/local/apr/lib
还可以指定tomcat启动参数,指定java.library.path
完成上面的步骤,已经搭建好 tomcat 的 APR 模式启动了
正常启动 tomcat 可以看到下面截图的提示:
欢迎指出我的错误!