huixiang
(huixiang)
1
【 TiDB 使用环境】生产环境
【 TiDB 版本】5.1.4
【复现路径】
【遇到的问题:问题现象及影响】
近期研发说应用写TIDB偶发出错, TIDB日志上信息read packet failed, close this connection。
-
T IDB集群稳定,负载较低
-
TIDB日志 有记录read packet failed, close this connection
-
业务日志
请问:
可能原因是否是TIDB参数或应用链接参数要优化?
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
huixiang
(huixiang)
2
1. 应用链接:
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://smsxxx:4000/smsdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true&useServerPrepStmts=true&allowMultiQueries=true
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.maxActive=20
spring.datasource.dbcp2.max-open-prepared-statements=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
2. TIDB参数
spring.datasource.testOnBorrow改为true,这样每次拿连接的时候就会检测,缺点是连接池的性能会变低,这个方法多半可以解决你的问题。
其他办法,可能不一定有用,也得看你连接池的版本
wait_timeout可以调整为interactive_timeout一致
连接池配置一下validationQuery,配个探活命令 select 1
1 个赞
kevinsna
(Ti D Ber P O Zcnp Ja)
4
这个问题最后是否解决了?解决的话分享下最终的解决方法?