Tomcat优化---Apr模式

1、修改Tomcat Connector运行模式为apr

Tomcat Connector 三种运行方式
运行Tomcat查看log日志可以查看当前运行的是哪一种运行模式。
运行Tomcat查看log日志可以查看当前运行的是哪一种运行模式。
在这里插入图片描述
(1) Bio模式
bio模式(blocking I/O):指阻塞式I/O操作,Tomcat在默认情况下是以bio模式运行的。
简明来说就是:每个客户端连接过来的,服务器都会启动一个线程来处理客户端的请求。
Bio模式的缺点:

  1. 当客户端较多时,会创建大量的处理线程,每个线程都会占用栈空间和一些cpu时间。
  2. 阻塞可能带来频繁的上下文切换,而大部分的上下文切换时无意义的。
    总结一句话:并发量高时,线程数较多,浪费资源。
    Tomcat7及其以下,在Linux系统中默认使用这种模式。

(2) nio模式
nio模式(non-blocaking I/O):指非阻塞I/O操作,nio是一个基于缓冲区并能提供非阻塞I/O操作的JavaAPI,它拥有比bio更好的并发运行性能,
想要Tomcat以nio模式运行我们需要修改server.xml文件。

Nio模式工作原理:
1.由一个专门的线程来处理所有的 I/O 事件、并负责分发。
2.事件驱动机制,而不再同步地去监视事件。
3.线程之间通过 wait,notify 等方式通讯。保证每次上下文切换都是有意义的,减少无谓的线程切换。
比较高深,纯属技术用语:
NIO采用了双向通道(channel)进行数据传输,而不是单向的流(stream)。在通道上我们可以注册指定的事件,一共有以下四种事件:
1.服务端接收客户端连接事件OP_ACCEPT(16)
2.客户端连接服务端事件 OP_CONNECT(8)
3.读事件 OP_READ(1)
4.写事件 OP_WRITE(4)
服务端和客户端各自维护一个管理通道的对象,我们称之为selector,该对象能检测一个或多个通道上的事件。以服务端为例,如果服务端的selector上注册了读事件,某时刻客户端给服务端发送了一些数据,BIO这时会调用read()方法阻塞地读取数据,而NIO的服务端会在selector中添加一个读事件。服务端的处理线程会轮询地访问selector,如果访问selector时发现有感兴趣的事件到达则处理这些事件;如果没有感兴趣的事件到达则处理线程会一直阻塞,直到感兴趣的事件到达为止。

(3)、APR模式
apr(Apache portable Run-time libraries/Apache可移植运行库)是Apache HTTP服务器的支持库。
在apr模式下,Tomcat将以JNI(Java Native Interface)的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大提高Tomcat对静态文件的处理性能。Tomcat apr是在Tomcat上运行高并发应用的首选模式。

而要让Tomcat以apr模式运行,
对于Tomcat 7.0.30开始向后的版本,只需要再次修改protocol为”org.apache.coyote.http11.Http11AprProtocol”即可。
对于Tomcat 7.0.30之前的版本,还需要以下三个组件的支持:
1.APR library[APR库]
2.JNI wrappers for APR used by Tomcat (libtcnative)[Windows操作系统上一个名为tcnative-1.dll的动态链接库文件]
3.OpenSSL libraries[OpenSSL库]

设置APR模式比较麻烦,需要安装一些依赖库。
(1)、最新的apr
(2)、最新的apr-util
(3)、tomcat-native.tar.gz(在Tomcat/bin下有相应的tar包)

安装三个依赖之前看看服务器中有没有apr

如果有,卸载掉,安装最新的apr
第一步:下载三个apr依赖
地址:http://apr.apache.org/download.cgi

第二步:编译apr组件和Tomcat-native组件。
(1)、编译前需要安装gcc和cmake,建议使用root用户,防止权限问题
yum install cmake gcc expat-devel
(2)、安装apr、apr-util、apr-iconv
新建 mkdir/usr/local/tomcat/apr/apr
mkdir/usr/local/tomcat/apr/apr-util
mkdir/usr/local/tomcat/apr/apr-iconv
将下载的apr组件上传到相应的文件夹
1 、 安装apr
cd /usr/local/tomcat/apr/apr/
./configure –prefix=/usr/local/apr/
Make
Make install
2、 安装apr-iconv
Cd /usr/local/tomcat/apr/apr-iconv
./configure –prefix=/usr/local/apr-iconv –with-apr=/usr/local/apr
Make
Make install
3、 安装apr-util
Cd /usr/local/tomcat/apr/apr-util
./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr –with-apr-iconv=/usr/local/apr-iconv/bin/apriconv
Make
Make install

(3)、安装Tomcat-native
Cd /usr/local/tomcat/bin/tomcat-native-1.2.17-src/native
./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/java/jdk.1.8.0_181
Make
Make install

4、修改环境变量
Vi /etc/profile
在结尾处添加
Export LD_LIBRARY_PATH=/usr/local/apr/lib
5、修改tomcat下server.xml

6、修改SSLEngine为off

启动tomcat服务

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我可以提供一些关于tomcat9-maven-plugin插件的信息。该插件是一个Apache Maven插件,可用于管理Apache Tomcat 9容器。它可以自动化任务,例如:编译,测试,打包和部署。tomcat9-maven-plugin是一个Maven插件,它可以帮助你将你的Java Web应用程序打包并部署到Tomcat 9服务器上。 使用该插件,你可以在Maven构建过程中自动化部署你的应用程序。插件提供了一组配置选项,包括Tomcat服务器的URL和管理员凭据,以及应用程序的名称和上下文路径。 要使用该插件,你需要在你的Maven项目的pom.xml文件中添加插件配置。以下是一个示例配置: ``` <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat9-maven-plugin</artifactId> <version>3.0.0-M5</version> <configuration> <url>http://localhost:8080/manager/text</url> <username>admin</username> <password>password</password> <server>TomcatServer</server> <path>/myapp</path> </configuration> </plugin> ``` 该配置指定了Tomcat服务器的URL、管理员凭据、服务器ID、应用程序上下文路径等信息。要使用该插件,你需要先确保Tomcat服务器已经启动,并且管理员凭据正确。然后,在Maven构建过程中执行`mvn tomcat9:deploy`命令,就可以自动部署应用程序到Tomcat服务器上了。 除了部署应用程序,该插件还提供了其他功能,比如启动和停止Tomcat服务器、重载Web应用程序等。你可以在插件文档中查找更多信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值