IntelliJ IDEA mysql 另类堆栈 webserver EasyCVR Jetbains全家桶 linq d3 webview Animsition 河南普通话考试 jquery多个元素绑定同一个事件 软件测试实战项目 java算法培训 android常用布局 nikto扫描web漏洞 oracle连接字符串 mysql时间戳转日期 python的range python中文文档 python中的index random函数用法 python打开文件夹 python可视化编程 javatrim 搭建java开发环境 java8函数式接口 java重载和重写的区别 怎么安装java环境 java语言介绍 java的框架 摩尔斯电码翻译器 音频频谱分析软件 js绝对值 pdf拆分工具 骰子表情 arm体系结构与编程 proteus8 小米9截屏 cf小号
当前位置: 首页 > 学习教程  > 编程语言

Tomcat优化配置

2020/8/31 15:48:18 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

优化一、Tomcat运行模式

Tomcat支持三种接收请求的处理方式:BIO、NIO、APR

1、BIO模式:(blocking I/O)阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即java.io包及其子包)。Tomcat8以下版本默认情况下是以bio模式运行的(Tomcat8版本开始默认是以nio模式运行),由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低。启动tomcat看到如下日志,表示使用的是BIO模式:
在这里插入图片描述

2、NIO模式:(new I/O)是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,它拥有比传统I/O操作(bio)更好的并发运行性能。要让Tomcat以nio模式来运行比较简单,只需要在Tomcat安装目录/conf/server.xml文件中将如下配置:

<Connector port="8080" protocol="HTTP/1.1"
         connectionTimeout="20000"
         redirectPort="8443" />

中的protocol属性值改为:

 <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
         connectionTimeout="20000"
         redirectPort="8443" />

原来的protocol="HTTP/1.1"表示遵循http1.1协议,同时,也是一个最原始的未经优化的通信协议,

启动tomcat看到如下日志,表示使用的是NIO模式:
在这里插入图片描述

3、APR模式:(Apache Portable Runtime/Apache可移植运行时)是Apache HTTP服务器的支持库,简单理解,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能,就是从操作系统级别解决异步IO问题,大幅度的提高服务器的处理和响应性能, 也是Tomcat运行高并发应用的首选模式。

Tomcat 6.x版本从6.0.32开始就默认支持apr。
Tomcat 7.x版本从7.0.30开始就默认支持apr。
Tomcat apr运行模式的配置是三种运行模式之中相对比较麻烦的一种。据官方文档所述,Tomcat apr需要以下三个组件的支持:

  • APR library[APR库]
  • JNI wrappers for APR used by Tomcat
    (libtcnative)[简单地说,如果是在Windows操作系统上,就是一个名为tcnative-1.dll的动态链接库文件]
  • OpenSSL libraries[OpenSSL库]

APR启用步骤:
1>安装依赖包

 yum install make gcc openssl-devel -y

2>下载安装APR包
在官网下载(http://apr.apache.org/download.cgi):安装包 apr-1.7.0.tar.gz,apr-util-1.6.1.tar.gz

wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz

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

tar -xf apr-1.7.0.tar.gz

cd apr-1.7.0

./configure --prefix=/usr/local/apr  && make  && make install

tar -xf apr-util-1.6.1.tar.gz

cd apr-util-1.6.1

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr  &&  make  &&  make install

3>在Tomcat中安装APR动态库

cd  apache-tomcat-7.0.94/bin

tar  -xf  tomcat-native.tar.gz

cd tomcat-native-1.1.32-src

./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr/   &&  make  &&  make  install

4>配置APR本地库到系统共享库搜索路径中

方式一:

设置LD_LIBRARY_PATH和LD_RUN_PATH环境变量,指向/usr/local/apr/lib目录,可配置到$HOME/.profile文件中

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
 export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/apr/lib

方式二:

拷贝/usr/local/apr/lib目录下所有动态库到/usr/lib或/lib系统共享库搜索目录下即可。

cp /usr/local/apr/lib/libtcnative* /usr/lib/

方式三(推荐):

编辑$TOMCAT_HOME/bin/catalina.sh文件,在虚拟机启动参数JAVA_OPTS中添加java.library.path参数,指定apr库的路径

JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

5>修改Tomcat中conf/server.xml的配置

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
             redirectPort="8443" />

中的protocol属性值改为:

<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
             connectionTimeout="20000"
             redirectPort="8443" />

6>运行Tomcat后,看到如下日志表示APR模式启动成功:
在这里插入图片描述

注意:如果没有配置SSL相关参数,并且开启了SSL,启动时会发生org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform异常:

在这里插入图片描述

如果不想启用SSL,将server.xml中apr模式下ssl关闭即可:

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

将SSLEngine的值从on改成off即可:

 <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />

4、禁用AJP协议

通过禁用AJP协议,达到在集群的时候提高处理请求的时间。

在这里插入图片描述

我们要做的就是要将此协议禁用,禁用方法:在conf/server.xml中,将

 <Connector port="8112" protocol="AJP/1.3" redirectPort="8443" />

这行注释掉,重新启动tomcat,可以看到控制台上已经不存在上图红框中所示

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

本文链接: http://www.dtmao.cc/news_show_150417.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?