背景:
在项目中,发现有服务的内存一直增长无法回收,可能有内存泄漏的问题;
排查后怀疑是使用的数据库连接池有内存溢出,因为是C端项目,不存在时间或者业务很复杂的查询,排除慢SQL的可能性,增加链接超时未归还泄漏的告警,监控链接池的情况;
该配置控制连接可以被借出多久;超过该时间将打印连接可能泄露的日志,最小允许的值为 2000,单位 ms;
该配置只是会在长时间未归还数据库连接的时候,打印告警日志,并不会影响链接的实际执行;
改进:
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
# 动态数据源文档 https://www.kancloud.cn/tracy5546/dynamic-datasource/content
dynamic:
hikari:
# 启用链接泄漏检测(10秒未关闭视为泄漏)
leak-detection-threshold: 10000