当前位置: 首页 > news >正文

【优化】性能优化Springboot 项目配置内置Tomcat使用Http11AprProtocol(AIO)

Springboot 项目配置内置tomcat使用Http11AprProtocol(AIO)

Windows版本

1.下载Springboot对应版本tomcat包

下载地址 Apache Tomcat® - Apache Tomcat 9 Software Downloads

找到bin目录下 tcnative-1.dll 文件

2 放到jdk的bin目录下

Linux版本

在Springboot中内嵌的Tomcat默认启动开启的是NIO模式,这里如果我们要在linux内核的系统上使用APR模式,那么需要安装一些lib库,可以通过rpm -q | grep apr来查看是否安装了apr,如果安装了则不再需要安装,如果未安装则需要安装下列库:

1)openssl,需要版本大于1.0.2,如果不使用https openssl也可以不安装,就是在启动的时候会报openssl的错误,直接忽视就可以了

2)apr,可以去官网下载1.6.X最新版进行下载Apache Downloads,在同一个页面进行下载,最新版本为1.6.X版本tomcat-native,在tomcat中自带了安装包,可以在tomcat的bin目录下找到tomcat-native.tar

下载最新&解压安装包apr

1) 安装APR

下载地址:Index of /dist/apr (apache.org)

安装APR

解压 tar -zxvf apr-1.7.1.tar.gz

cd apr-1.7.1-rc2
检查是否符合安装条件并配置安装参数,检查是否缺失类库,一般来说如果安装的不是精简版系统都是能顺利通过的#

./configure --prefix=/usr/local/apr && make && make install
如果不设置安装路径,那么系统默认的安装路径为/usr/local/apr/lib

或者 (不推荐) 

yum install apr

2)安装 APR-uril

下载地址:Index of /dist/apr (apache.org)

解压

tar -zxvf apr-util-1.6.2.tar.gz

cd apr-util-1.6.2-rc3/

./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-utils --with-java-home=/usr/local/jdk && make && make install
安装apr-util需要配置apr路径和jvm路径,否则会报错找不到apr

注意:/usr/local/jdk   是 jdk的安装目录

或者(不推荐) 

yum install apr-util

3) 安装tomcat-native   从对应版本Tomcat包bin目录中获取

或者 Index of /dist/tomcat/tomcat-connectors/native/1.2.14/source

http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.14/source/ 
tomcat-native下载地址,低版本启动会报错解压
tar -zxvf tomcat-native.tar.gz//进入目录
cd tomcat-native-1.2.36-src/native/进行安装
./configure --with-apr=/usr/local/apr/bin/apr-1-config --with-java-home=/usr/local/jdk && make && make install

配置Apr

vim /etc/profile

 Insert

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

:wq

//生效

source /etc/profile

3. 配置SpringBoot

/*** <p>@filename SSLAPRConfig</p>* <p>* <p>@description apr配置类</p>***/
@Configuration
public class AprProtocolConfig {@Beanpublic TomcatServletWebServerFactory servletContainer() {TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();tomcat.setProtocol("org.apache.coyote.http11.Http11AprProtocol");tomcat.addContextLifecycleListeners(new AprLifecycleListener());return tomcat;}
}

4.启动项目看效果

Http11AprProtocol需要tcnative-1.dll支持, 内置tomcat版本是9,下载对应tomcat包,将bin目录下的tcnative-1.dll拷贝到jdk安装目录的bin目录下

启动测试,看到如下打印即配置成功了

o.a.coyote.http11.Http11AprProtocol : Starting ProtocolHandler [“http-apr-443”]
 

启动成功

 INFO  org.apache.catalina.core.AprLifecycleListener:173 - Loaded Apache Tomcat Native library [1.2.36] using APR version [1.7.1].
[main] INFO  org.apache.catalina.core.AprLifecycleListener:173 - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
[main] INFO  org.apache.catalina.core.AprLifecycleListener:173 - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
[main] INFO  org.apache.catalina.core.AprLifecycleListener:173 - OpenSSL successfully initialized [OpenSSL 1.1.1k  FIPS 25 Mar 2021]

http://www.lryc.cn/news/26494.html

相关文章:

  • SpringBoot之@ConfigurationProperties、@EnableConfigurationProperties
  • 数组一次性删除多条数据
  • 相机删除照片如何恢复?一键解决它
  • vue3搭建教程(基于webpack+create-vue+ element-plus)
  • 代码随想录算法训练营第四十二天 | leetcode 1049. 最后一块石头的重量 II,494. 目标和,474.一和零
  • Java8中Lambda表达式之Collection 的常见用法
  • SpringCloud系列知识快速复习 -- part 2(Sentinel微服务保护,Seata分布式事务,Redis分布式缓存和多级缓存)
  • 设置CentOS7的时间与网络同步
  • java开发手册之编程规约
  • Camera | 5.Linux v4l2架构(基于rk3568)
  • 机房PDU如何挑选?
  • lab备考第二步:HCIE-Cloud-Compute-第一题:FusionCompute
  • js-cookie和vue-cookies(Cookie使用教程)
  • 开创高质量发展新局面,优炫数据库助推数字中国建设
  • 【项目实战】为什么我选择使用CloseableHttpClient,而不是HttpClient,他们俩有什么区别?
  • Spark 内存运用
  • SpringBoot集成Swagger3.0(入门) 02
  • 网络协议丨ICMP协议
  • 12.1 基于Django的服务器信息查看应用(系统信息、用户信息)
  • ExSwin-Unet 论文研读
  • 置顶!!!主页禁言提示原因:在自己论坛发动态误带敏感词,在自己论坛禁止评论90天
  • 优思学院|解密六西格玛:探索DMAIC和DMADV之间的区别
  • Pytorch的DataLoader输入输出(以文本为例)
  • 代谢组学:Microbiome又一篇!绘制重症先天性心脏病新生儿肠道微生态全景图谱
  • Java基本类型所占字节简述
  • Linux vi常用操作
  • Unicode(宽字节)、ANSI(多字节)
  • STM32实战之LED循环点亮
  • 智慧厕所智能卫生间系统有哪些功能
  • 【网络】套接字 -- TCP