专栏首页运维经验分享配置Tomcat apr运行模式 原

配置Tomcat apr运行模式 原

  tomcat中一共有三种运行模式,分别是:bio,nio,apr

  bio是阻塞式IO操作,使用的是传统的java i/o处理方式,对于每一个请求都要创建一个线程来进行处理,所以开销较大不适合处理高并发的场景

  nio是基于java中非阻塞IO操作的API实现,比传统的i/o处理方式有更高的并发运行性能,启动时可以看到:

  apr是从操作系统级别解决异步IO问题,大幅度提高服务器的并发处理性能,也是Tomcat生产环境运行的首选方式

  目前Tomcat 8.x默认情况下全部是运行在nio模式下,而apr的本质就是使用jni技术调用操作系统底层的IO接口,所以需要提前安装所需要的依赖,首先是需要安装openssl和apr,命令如下:

yum -y install openssl-devel
yum -y install apr-devel

  安装之后,去tomcat官网下载native组件,native可以看成是tomcat和apr交互的中间环节,下载地址是:http://tomcat.apache.org/download-native.cgi 这里下载最新的版本1.2.10

  解压之后上传至服务器执行解压并安装:

tar -xvzf tomcat-native-1.2.10-src.tar.gz
cd tomcat-native-1.2.10-src/native/
./configure

  如果执行./configure的时候出现下面的错误:

  这种错误说明native需要openssl版本大于1.0.2 而目前系统版本是1.0.1e,所以需要更新版本,而yum源最新的openssl也就到1.0.1e版本,所以现在必须手动去openssl官网下载安装包进行编译安装,编译时编译到自定义目录和系统的openssl并存而且互不干扰,因为系统的openssl可能被一些软件所使用,这样一般安装在/usr/local/下便于管理

  openssl官网:https://www.openssl.org/

  下载地址是:https://www.openssl.org/source/ ,这里下载最新版本的1.1.0e

  下载之后执行如下命令安装:

tar -xvzf openssl-1.1.0e.tar.gz
cd openssl-1.1.0e/
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make && make install

  稍等一会就安装成功了,现在再次进入native刚才编译的目录下,重新执行如下命令安装:

./configure --with-ssl=/usr/local/openssl
make && make install

  其中编译指定--with-ssl为刚才新安装的目录,否则会自动寻找系统目录;安装成功之后,默认位置是在:/usr/local/apr

  然后进入tomcat安装目录,编辑配置文件:conf/server.xml

  如图所示,将默认的protocol="HTTP/1.1"修改为protocol="org.apache.coyote.http11.Http11AprProtocol"

  修改完成保存并退出,然后有以下两种方法来引入apr:

  方法1:配置tomcat安装目录下:bin/catalina.sh文件引入apr,推荐这种方式:

  如图所示在原有变量JAVA_OPTS后面追加对应的配置即可,添加一行新的就可以:JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

  然后保存并退出

  方法2:在环境变量中加入apr的目录,让tomcat可以使用系统变量搜索到,编辑/etc/profile在最后添加如下两行内容:

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

  保存之后,执行 source /etc/profile 使配置生效

  以上两种方法都是可以的,配置完成之后,重启一下tomcat,然后查看日志logs/catalina.out可以看到http已经以apr模式启动了

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MongoDB4.0构建分布式分片群集

    分片的优势在于提供类似线性增长的架构,提高数据可用性,提高大型数据库查询服务器的性能。当MongoDB单点数据库服务器存储成为瓶颈、单点数据库服务器的性能成为...

    拓荒者
  • tomcat 9.0.4 性能调优

    拓荒者
  • mongodb异常恢复 --repair

    删除mongod.lock 文件,在原数据路径下进行恢复,恢复后mongodb正常关闭

    拓荒者
  • 搞懂JavaScript引擎运行原理

    JS引擎 — 一个读取代码并运行的引擎,没有单一的“JS引擎”;,每个浏览器都有自己的引擎,如谷歌有V。

    前端小智@大迁世界
  • JavaScript 究竟是怎样执行的?

    JS 引擎 — 一个读取代码并运行的引擎,没有单一的“JS 引擎”;每个浏览器都有自己的引擎,如谷歌有 V。

    Fundebug
  • nutch 0.7 plug-ins 详解

    最近桂林在关注nutch的进展状况,这里有几个重要的消息要和大家分享: 1、nutch 0.7 发布了; 2、nutch 的java源代码包路径改变成了org...

    田春峰-JCJC错别字检测
  • 人工智能将淘汰1000万就业岗位—影响远超全球金融危机!!!

    人工智能技术正在对传统就业岗位形成威胁,从快餐行业员工到会计师都面临被淘汰的命运。本文分析了哪些工作面临来自人工智能的风险最高,哪些最低,分析中考虑了工作特点...

    点滴科技资讯
  • Android View 源码解析(二) - LayoutInflater

    之前我们分析了setContentView方法的相关代码 接下来说说LayoutInflater的方法

    Android架构
  • Nginx、tomcat访问日志准实时分析统计--goaccess

    需求:及时得到线上用户访问日志分析统计结果,以便给开发、测试、运维、运营人员提供决策!

    菲宇
  • 2019年中国机器人销量将达16万台,或影响全球经济

    从世界范围来看,中国安装的机器人数量最多,并可能影响到其他国家。据国际航运联合会估计,去年中国的机器人出货量猛增了27%,达到9万台,创下了单个国家的出货记录,...

    机器人网

扫码关注云+社区

领取腾讯云代金券