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

news2024/11/27 16:51:42

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 {
    @Bean
    public 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.coloradmin.cn/o/383146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实验三、数字PID控制器的设计

实验三、数字PID控制器的设计 --- 直流闭环调速实验 一、实验目的 1&#xff0e;理解晶闸管直流单闭环调速系统的数学模型和工作原理;. 2. 掌握PID控制器参数对控制系统性能的影响; 3. 能够运用MATLAB/Simulink软件对控制系统进行正确建模并对模块进行正确的参数设置; 4.…

如何获取或设置CANoe以太网网卡信息(GET篇)

CAPL提供了一系列函数用来操作CANoe网卡。但是,但是,首先需要明确一点,不管是获取网卡信息,还是设置网卡信息,只能访问CAPL程序所在的节点下的网卡,而不是节点所在的以太网通道下的所有网卡 关于第一张图中,Class节点下,有三个网卡:Ethernet1、VLAN 1.100、VLAN 1.200…

Malware Dev 02 - Windows SDDL 后门利用之 SCManager

写在最前 如果你是信息安全爱好者&#xff0c;如果你想考一些证书来提升自己的能力&#xff0c;那么欢迎大家来我的 Discord 频道 Northern Bay。邀请链接在这里&#xff1a; https://discord.gg/9XvvuFq9Wb我拥有 OSCP&#xff0c;OSEP&#xff0c;OSWE&#xff0c;OSED&…

关于tf.gather函数batch_dims参数用法的理解

关于tf.gather函数batch_dims参数用法的理解0 前言1. 不考虑batch_dims2. 批处理(考虑batch_dims)2.1 batch_dims12.2 batch_dims02.3 batch_dims>22.4 batch_dims再降为12.5 再将axis降为12.6 batch_dims<02.7 batch_dims总结3. 补充4. 参数和返回值5. 其他相关论述6. 附…

3.2 http协议

一.HTTP协议1.概述是计算机网络的核心概念,是一种网络协议网络协议种类非常多,其中IP,TCP,UDP...其中还有一个应用非常广泛的协议.HTTPHTTP协议是日常开发中用的最多的协议HTTP处在TCP/IP五层协议栈的应用层HTTP在传输层是基于TCP的,(http/1 HTTP/2是基于TCP,最新版本的HTTP/3是…

交换机电口、光口、网络速率的基本概念总结

电口和光口千兆网 & 万兆网&#xff1a;POE&#xff1a;包转发率&#xff1a;背板带宽/交换容量&#xff1a;)电口和光口 电口&#xff1a; 电口也即RJ45口&#xff0c;插双绞线的端口&#xff08;网线&#xff09;&#xff0c;一般速率为10M或100M&#xff0c;即为百兆工…

[数据结构]:09-二分查找(顺序表指针实现形式)(C语言实现)

目录 前言 已完成内容 二分查找实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-PSeqListFunction.cpp 04-SearchFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容&#xff0c;除其中使用到C引用外&#xff0c;全为C语言代码。使用C引用主要…

2023年3月北京/上海/广州/深圳DAMA数据管理认证CDGA/CDGP

弘博创新是DAMA中国授权的数据治理人才培养基地&#xff0c;贴合市场需求定制教学体系&#xff0c;采用行业资深名师授课&#xff0c;理论与实践案例相结合&#xff0c;快速全面提升个人/企业数据治理专业知识与实践经验&#xff0c;通过考试还能获得数据专业领域证书。 DAMA认…

【JavaWeb】数据链路层协议——以太网 + 应用层协议——DNS

以太网 以太网不是一个具体的网络&#xff0c;而是一个技术标准&#xff0c;主要应用于数据链路层和物理层。 以太网数据帧结构 以太网的数据帧结构由三部分构成&#xff1a; 帧头 载荷 帧尾 其中的MAC地址是六位&#xff0c;这样就比IPV4所表示的地址大很多&#xff0c;…

Idea git 回滚远程仓库版本

目标 回滚远程仓库到特定版本。 将【添加test03】版本回滚到【行为型模式】版本。 回滚前的效果图 步骤 ①复制需要回滚到的版本的版本号 ②右键项目&#xff0c;选择Git-Repository-Reset Head ③Reset Type选择Hard&#xff1b;To Commit填入步骤①复制的版本号&#xff…

【Flutter·学习实践】运行项目及解决各种报错

文章目录 简介 项目目录介绍 运行报错&#xff1a;Exception: Gradle task assembleDebug failed with exit code 1 简介 我As的版本信息&#xff1a;Android Studio Dolphin | 2021.3.1 Patch 1 上一张搭建好了开发环境我们就开始运行程序检验项目是否存在问题。 项目目…

《分布式技术原理与算法解析》学习笔记Day27

故障隔离 什么是故障隔离&#xff1f; 故障隔离&#xff0c;就是采用一定策略&#xff0c;以实现当某个模块发生故障时&#xff0c;不会影响其他模块继续提供服务&#xff0c;以保证整个系统的可用性&#xff0c;它可以避免分布式系统出现大规模的故障&#xff0c;甚至是瘫痪…

spark history文件占用磁盘过高问题解决

我们目前用的spark版本还是2.x spark的history事件是保存在hdfs上的&#xff0c;通过spark.history.fs.logDirectory指定保存的hdfs目录 使用中发现history日志文件占用磁盘还挺高的 于是写了一个脚本来定期进行清理&#xff0c;只保留一定时间的文件 对于spark离线任务来说…

开学季哪个电容笔好?2023口碑最好电容笔推荐

虽说苹果原装的电容笔非常好用&#xff0c;性能也非常不错&#xff0c;但由于价格昂贵&#xff0c;普通的学生是没办法购买的&#xff0c;再加上重量比较大&#xff0c;使用时间长了&#xff0c;难免会让人感觉到疲劳。如果仅仅是为了学习记笔记&#xff0c;那就没必要再去购买…

ubuntu搭建 自动驾驶单目3d检测smoke 环境

论文&#xff1a;SMOKE&#xff1a;Single-Stage Monocular 3D Object Detection via Keypoint Estimation 论文链接 源码 操作系统&#xff1a;ubuntu18.04 显卡&#xff1a;RTX2080TI 一、搭环境(前面和GitHub上一样&#xff0c;补上我踩的坑) 1.创建虚拟环境 conda create…

PayPal轮询系统解放你的生产力助力起航

现在很多跨境商家手里都有很多PayPal账号&#xff0c;本来多个PayPal账号就是为了防止一个账号出现问题&#xff0c;导致工作没办法继续下去。但是手动切换让很多盯站的商家觉得很麻烦。而且多账号之间本可以相互配合&#xff0c;让彼此的安全系数越来越高&#xff0c;风控越来…

win10 设备管理器中的黄色感叹号(华硕)

目录一、前言二、原因三、方案四、操作一、前言 打开设备管理器&#xff0c;我们可以看到自己设备的信息&#xff0c;但是在重装系统后&#xff0c;你总会在不经意间发现。咦&#xff0c;怎么多了几个感叹号&#xff1f;&#xff1f;&#xff1f; 由于我已经解决该问题&#…

数据库事务详解

概述事务就是数据库为了保证数据的原子性,持久性,隔离性,一致性而提供的一套机制, 在同一事务中, 如果有多条sql执行, 事务可以确保执行的可靠性.数据库事务的四大特性一般来说, 事务是必须满足 4 个条件&#xff08;ACID&#xff09;&#xff1a;原子性&#xff08;Atomicity&…

vscode ssh一直卡在wget的解决方案

vscode ssh一直卡在wget的解决方案找到commit_id 在服务器下点进该目录 .vscode-server\bin 一般日期最新的那一串就是我们需要的commit_id下载vscode-server-linux-x64.tar https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable 将加粗部分替换…

2023年天津财经大学珠江学院专升本专业课考试题型

天津财经大学珠江学院关于2023年高职升本科专业课考试时间及题型一、专业课考试 &#xff08;一&#xff09;时间安排 2023年天津财经大学珠江学院高职升本科专业课考试定于2023年3月25日14&#xff1a;00-17:00进行&#xff0c;凡报考工商管理、旅游管理、税收学专业的考生&am…