前提:java项目,连接数据库没问题,其他模块存在数据库操作的模块无报错
问题:项目界面数据正常,后台日志隔段时间会报数据库连接错误
分析:
1、数据库连接超时,设置的连接时间太短
2、线程失活后依然尝试重新连接
3、数据库压力太大
4、网络抖动
解决:
修改配置文件线程池配置(具体参数请根据实际情况填写)
## Hikari 连接池配置 ------ 详细配置请访问:https://github.com/brettwooldridge/HikariCP
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
## 最小空闲连接数量
spring.datasource.hikari.minimum-idle=8
## 连接池最大连接数
spring.datasource.hikari.maximum-pool-size=32
## 空闲连接存活最大时间,默认600000(10分钟)
spring.datasource.hikari.idle-timeout=30000
## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
spring.datasource.hikari.auto-commit=true
## 连接池母子
spring.datasource.hikari.pool-name=MyHikariCP
## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
spring.datasource.hikari.max-lifetime=120000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.time-between-eviction-runs-millis=18800
## 数据库连接超时时间,默认30秒,即30000
spring.datasource.hikari.connection-timeout=30000
#监控线程情况,但是Hikari 不会先检测存活线程在进行连接
spring.datasource.hikari.connection-test-query=SELECT 1
但是问题依然没有解决
然后怀疑是数据库压力太大,清理历史脏数据可以解决。
网友评论