admin管理员组文章数量:1618731
业务场景:MySQL千万级大表数据查询,连接出现失效问题,异常如下:
The last packet successfully received from the server was 12,327 milliseconds ago. The last packet sent successfully to the server was 12,454 milliseconds ago.
问题应该是由mysql(wait_timeout)关闭连接而druid未能跟踪导致连接失效。网上翻阅了各种资料,如调整timeBetweenEvictionRunsMillis、minEvictableIdleTimeMillis、maxEvictableIdleTimeMillis等的时间,都不能解决问题(有关这几个参数配置的作用,请自行查阅)。
解决方案:connectionProperties 加上配置项connectTimeout=10000;socketTimeout=30000;
另附上druid配置与mysql环境配置
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initialSize=1
spring.datasource.druid.minIdle=3
spring.datasource.druid.maxActive=100
spring.datasource.druid.maxWait=3000
spring.datasource.druid.keepAlive=true
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
spring.datasource.druid.minEvictableIdleTimeMillis=300000
spring.datasource.druid.maxEvictableIdleTimeMillis=600000
spring.datasource.druid.validationQuery=SELECT 1
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.testOnBorrow=false
spring.datasource.druid.testOnReturn=false
spring.datasource.druid.poolPreparedStatements=false
spring.datasource.druid.filters=stat,wall,slf4j
spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;connectTimeout=10000;socketTimeout=30000;
以上内容若有不对的,或者有更好解决方案的,请指教。
本文标签: 解决方案CommunicationsdruidfailureLINK
版权声明:本文标题:关于Druid Communications link failure 的解决方案 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728783487a1173024.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论