首页 > 其他分享 >每隔一段时间后第一次请求耗时特别长

每隔一段时间后第一次请求耗时特别长

时间:2024-10-19 10:48:11浏览次数:6  
标签:请求 tomcat 丢弃 耗时 mysql 每隔 加载

  同一个接口连续请求耗时都是毫秒级别的,当一段时间不请求后会变成秒级别,通过日志跟踪发现业务出处理的时间是毫秒级别的,怀疑是过滤器或者是容器的问题,通过IDEA 远程debug 发现经过一段时间不使用再次请求接口,会寻找 com.mysql.jdbc.MySQLConnection类,猜测是tomcat 丢弃了已加载mysql驱动类,导致需要重新加载,但是该类是mysql5.1.38的目录,项目里面的是mysql8.0 新的目录应该是com.mysql.cj.MysqlConnection 所以这里查找该类的时候会非常耗时。

参考:

  java - 为什么在处理第一个请求时,我的嵌入 tomcat 的 Springboot 太慢了?_Stack Overflow中文网

  java - 同事升级了MySQL驱动8.0,导致应用大量超时 - 个人文章 - SegmentFault 思否

解决方案:

  由于该项目的背景原因所以通过修改tomcat 配置不再丢弃已加载的类

@Configuration
public class EmbeddedTomcatConfiguration {

  @Bean
  TomcatServletWebServerFactory tomcatFactory() {
    return new TomcatServletWebServerFactory() {

      @Override
      protected void postProcessContext(Context context) {
        context.setResources(new ExtractingRoot());
      }
    };
  }
}

疑问:

  1.为什么能成功加载到了mysqlconnection

  2.tomact 丢弃加载的类的时间是在哪里,如果tomcat 没有加载到这个类,那么是通过druid加载到的吗?

 

标签:请求,tomcat,丢弃,耗时,mysql,每隔,加载
From: https://www.cnblogs.com/cainaioblogs/p/18475595

相关文章

  • WebView2 拦截查看所有的请求
    有两种方式:1.使用devtoolprotocol://启用网络监控awaitwebView.CoreWebView2.CallDevToolsProtocolMethodAsync("Network.enable","{}");//注册Network.requestWillBeSent事件varrequestWillBeSentReceiver=webView.CoreWebView2.GetDevToolsProtocolEv......
  • Vue3 编写HTTP 请求工具并使用
    编写Http请求首先在vue项目中创建一个api工具包并新建http.js导入axiosimportaxiosfrom'axios';如果没有axios,那么要先下载一个下载axios配置axios默认设置设置了Axios的默认超时时间为5秒。允许跨域请求,通过设置 withCredentials 为 true。设置了POST请......
  • ArkWeb网络安全基础 - 跨域请求与解决方案
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。简介华为鸿蒙HarmonyOSNext系统的Ar......
  • MultipartEncoder处理request请求为表单数据时
    -----------------------------7e713d354f0fa6Content-Disposition:form-data;name="username"log_username-----------------------------7e713d354f0fa6Content-Disposition:form-data;name="password"log_pwd----------------------------......
  • 【FastAPI】异步+网络请求
    前言:当我们碰到IO阻塞的时,使用fastapi异步框架,需要配合异步模块使用1.网络请求,httpximporthttpximportuvicornfromfastapiimportFastAPIfromfastapi.requestsimportRequestapp=FastAPI()@app.get("/api")asyncdefapi(request:Request):data_dict=......
  • 为什么同一个Camera有两个RenderSingleCamera的耗时
    1)为什么同一个Camera有两个RenderSingleCamera的耗时2)Unity2022中SBP打包报错问题排查3)Application.lowMemory在什么时候会生效4)一般iOS机型要超过其运行内存的多少会容易崩溃这是第404篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力......
  • 如何用axios发送ajax请求(函数)
    在上篇文章的基础上将格式改为:btns[2].onclick=function(){axios({//请求方法method:'POST',url:'/axios-server',params:{vip:10,......
  • Spring Cloud Gateway关键点全局Token过滤器,局部过滤器接口耗时,全链路跟踪TraceId日志
    一.全局Token过滤器在SpringCloudGateway中,实现全局过滤器的目的是对所有进入系统的请求或响应进行统一处理,比如添加日志、鉴权等。下面是如何创建一个全局过滤器的基本步骤:步骤1:创建过滤器类首先,你需要创建一个实现了GlobalFilter接口,创建一个全局token过滤器。@Slf......
  • 1-3.Retrofit 异常请求清单(404 请求、超时请求、连接失败请求)
    Retrofit1、Retrofit概述Retrofit是一个网络请求库,专门用于发送HTTP请求和处理HTTP响应2、Retrofit引入在AndroidManifest.xml文件中添加相关权限,如果是Android6.0(API级别23)或之后,需要在运行时请求<uses-permissionandroid:name="android.permission.INT......
  • 【Azure 环境】请求经过应用程序网关,当响应内容大时遇见504超时报错
    问题描述API调用过程中,一旦遇到数据量大的场景下,返回504 超时的错误。注意: 请求首先达到ApplicationGateway,然后转发到后端的AppService服务中。 问题解答这可能与应用程序网关的“响应缓存区”配置有关:应用程序网关的响应缓冲区可以收集后端服务器发送的全部或部分......