Tomcat详解(六)——Tomcat运行模式调优

简介: Tomcat详解(六)——Tomcat运行模式调优

今天继续给大家介绍Linux运维相关知识,本文主要内容是Tomcat运行模式调优实战。

一、Tomcat运行模式
Tomcat有三种运行模式,分别是BIO、NIO和APR。BIO是阻塞式操作,使用的是传统的JAVA I/O处理模式,对于每一个请求都要创建一个线程来处理,因此开销比较大,不适合处理高并发的场景。NIO是基于java中非阻塞I/O操作的API实现,比传统的I/O处理方式有更高的并发处理性能。APR则是从操作系统层面解决异步I/O问题,大幅度提升服务器的并发处理能力,也是在生产环境中Tomcat的常见运行模式之一。
在默认情况下,Tomcat是处于NIO的运行模式下,我们可以通过查看Tomcat的日志来确定Tomcat的运行模式。在NIO模式下,Tomcat日志显示如下:

二、Tomcat运行模式修改
在生产环境中,我们需要吧Tomcat的运行模式修改为APR的模式,要进行这一步修改,我们需要安装Tomcat-Native和APR。
APR的安装我们可以直接通过YUM的方式进行,执行命令:

yum install -y apr-devel
1
即可。
至于Tomcat-Native的安装,在Tomcat8版本之后,Tomcat-Native会在Tomcat压缩包中存在,默认在bin目录下,如下所示:

在Tomcat8版本之前,我们也可以前往Tomcat的官网进行下载,如下所示:

下载完成后,解压,解压后文件如下所示:

解压完成后,进入到native目录,里面有configure预编译脚本,预编译时,我们需要指明APR的依赖和JAVA的安装目录,因此,预编译命令为:

./configure --with-apr=/usr/ --with-java-home=/usr/java/jdk1.8.0_191
1
编译和安装命令为:

make && make install
1
完成安装操作后,我们需要添加库文件,打开文件/etc/ld.so.conf,在该文件的末尾添加内容:

/usr/local/apr/lib
1
然后执行命令:

ldconfig
echo "ldconfig" >>/etc/rc.local
1
2
然后添加环境变量,新创建文件/etc/profile.d/jdk8.sh,在该文件中写入如下内容:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
1
然后执行命令:

source /etc/profile.d/jdk8.sh
1
完成上述操作后,我们还需要更改Tomcat的主配置文件,将Connectoru元素的protocol属性修改为org.apache.coyote.http11.Http11AprProtocol,修改完成后的主配置文件如下所示:

接下来,我们需要引用APR,打开/usr/local/tomcat/apache-tomcat-8.5.54/bin/catalina.sh文件,在文件中添加如下内容:

JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"
1
如下所示:

这样,我们的Tomcat运行模式就已经配置完成了。

三、效果检验
最后,让我们检验一下配置的结果。重启Tomcat服务,查找日志文件,如下所示:

可以看到,Tomcat已经以APR的方式运行,我们的配置生效!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/123256442

目录
相关文章
|
2月前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
34 0
|
8月前
|
安全 Java 应用服务中间件
【JavaWeb】Tomcat底层机制和Servlet运行原理
网络通信:Tomcat使用Java的Socket API来监听特定的端口(通常是8080),接收来自客户端的HTTP请求。 线程池:Tomcat使用线程池来处理并发的请求。当有新的请求到达时,Tomcat会从线程池中获取一个空闲线程来处理该请求,这样可以提高处理效率。 生命周期管理:Tomcat负责管理Servlet和其他Web组件的生命周期,包括初始化、请求处理和销毁等阶段。(init(), run())
|
14天前
|
运维 Java 应用服务中间件
Tomcat详解(六)——Tomcat运行模式调优
Tomcat详解(六)——Tomcat运行模式调优
18 6
|
4月前
|
缓存 负载均衡 应用服务中间件
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
在本章内容中,我们将深入探讨 Tomcat 服务器的运行架构、LVS 负载均衡的运行机制以及 Cache 缓存机制,并提供相应的解决方案和指导。通过理解这些关键概念和机制,您将能够优化您的系统架构,提高性能和可扩展性。
208 4
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
|
4月前
|
监控 应用服务中间件
idea debug模式启动Tomcat报错:Error running ‘tomcat8‘: java.net.SocketException “socket closed“
idea debug模式启动Tomcat报错:Error running ‘tomcat8‘: java.net.SocketException “socket closed“
|
5月前
1分钟入门angular动画效果animations,敲简单滴哟~~
1分钟入门angular动画效果animations,敲简单滴哟~~
1分钟入门angular动画效果animations,敲简单滴哟~~
|
5月前
|
Java 应用服务中间件 Linux
Tomcat运行中的那些问题
Tomcat运行中的那些问题
18 0
|
6月前
|
应用服务中间件
idea下tomcat运行乱码问题解决方法
idea下tomcat运行乱码问题解决方法
|
6月前
|
XML Java 应用服务中间件
Tomcat调优总结
Tomcat调优总结
23 0
|
6月前
|
Oracle Java 关系型数据库
JDK配置,eclipse运行 web通过apache-tomcat,mysql配置
JDK配置,eclipse运行 web通过apache-tomcat,mysql配置