• 你的数据库连接池配置真的生效了吗


    最近在排查一个老系统的慢接口时,发现了一个问题。就是前人对数据库连接池的配置,根本没有生效,导致数据库连接池使用的是默认配置,在流量较高的时间,就会因为获取连接时,产生竞争,导致链路超时。下面是排查和解决过程

    慢接口告警分析

    13.40
    在这里插入图片描述

    从链路中发现,getConnection耗时较长

    在这里插入图片描述

    数据库连接池情况,发现有等待连接的情况出现,可能是连接数较少
    在这里插入图片描述

    原因分析

    从数据库连接池监控情况及链路慢节点分析,怀疑是因为连接池连接数较少,产生了竞争,导致较多的链路在getConnection节点等待时间较长

    查看apollo配置
    在这里插入图片描述

    发现,最大活跃数配置的是30,最小空闲数配置的是2,可是根据连接池监控对比看,发现可能是配置的没有生效

    当前使用的都是Druid的默认配置,参考https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8

    为什么配置没生效呢???
    查看项目源码发现原来是maven依赖的是druid包,而不是druid-spring-boot-starter

    没有自动读取spring.datasource.druid配置的能力
    starter包里,是通过类DruidDataSourceWrapper完成spring.datasource.druid属性的配置的

    解决方案

    依赖中增加druid-spring-boot-starter包依赖

    		<dependency>
                <groupId>com.alibabagroupId>
                <artifactId>druid-spring-boot-starterartifactId>
                <version>1.1.24version>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    嵌入式Linux应用开发-文件 IO
    GO编程实践:如何高效使用变量
    DusQ1 dT phosphoramidite,DusQ1-dT磷酰胺
    C# Winfrom 常用功能整合-2
    python中的运算符
    openstack搭建笔记-train版
    前端开发——HTML5新增加的表单属性
    window下tqdm进度条
    c++随机数问题研究
    【无标题】
  • 原文地址:https://blog.csdn.net/qq_26824159/article/details/127729539