linux 下编译 tomcat native

本文介绍Tomcat Native的原理及如何通过APR提升Tomcat性能。包括Tomcat运行模式、安装配置步骤及验证方法。


一、tomcat native 是什么?

Tomcat Native 是一个利用 APR 来提升Tomcat性能的本地API,底层是用 JNI 的原理来实现的。他是一个可选的库,默认是不使用的,可以通过编译构建出库文件,在tomcat的配置指向并使用库文件,从而提升Tomcat性能

二、tomcat 运行的三种模式

很多人不清楚 APR 是什么?

APR(Apache portable Run-time libraries,Apache可移植运行库),主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。

听不懂没关系,下面直接简要介绍下 tomcat 包含的三种运行模式,和 tomcat 中 APR 模式到底是什么意思:

  1. BIO
    bio(blocking I/O),阻塞式I/O,表示Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。该模式运行性能最低,在早期,tomcat6 及之前,只有这一种运行模式。

  2. NIO
    nio(non-blocking I/O)非阻塞式I/O,他是一个基于缓冲区来操作的,比传统I/O操作(bio)发挥更好的并发运行性能。在 tomcat6 之后提供了nio的实现,但默认模式仍然是bio,而在tomcat8 以后默认模式就是nio

  3. APR
    (Apache Portable Runtime/Apache可移植运行库),是Apache HTTP服务器的支持库。你可以简单地理解为,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能

三、使用过程

1. 环境准备

本片文章是在 linux 环境下使用 tomcat native,他依赖 gcc 、 APR

依赖环境和库文件的安装:

yum install gcc

yum install apr

yum install apr-devel

yum install apr-util

2. 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 --with-apr=/usr/local/apr --with-ssl=/usr/local/openssl
make && make install

3. 指向本地库文件

上面的步骤最后在目录 /usr/local/apr/lib 下生成了本地库文件(如果没有就代表上面步骤失败了)
我们要想 tomcat 启动使用 APR模式,还需要修改配置文件,使 tomcat 以 APR 模式启动,并且在启动时可以读取到刚才生成的本地库文件。

  • 修改 tomcat 的 conf 下的配置文件 server.xml
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

将上面的替换成下面的

<Connector connectionTimeout="20000" port="8080" 
				protocol="org.apache.coyote.http11.Http11AprProtocol"
				redirectPort="8443"/>
  • 指定tomcat启动的本地库读取(3种方式)
  1. 拷贝过去系统库,因为在 Linux 下 tomcat 启动也会去读取系统库 /usr/lib/
cp /usr/local/apr/lib/libtcnative* /usr/lib/  

我是使用这种方式,下面两种方式大家可以自行百度解决

  1. 配置环境变量指向/usr/local/apr/lib

  2. 还可以指定tomcat启动参数,指定java.library.path

四、验证

完成上面的步骤,已经搭建好 tomcat 的 APR 模式启动了
正常启动 tomcat 可以看到下面截图的提示:
在这里插入图片描述

总结

欢迎指出我的错误!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值