微服务连接mysql 不稳定的几种原因总结

项目场景:

微服务连接mysql 不稳定的几种原因总结


问题描述

mysql数据库连接不稳定,比如:每天凌晨2点多服务异常,通过告警看出几乎是每天凌晨2点35到3点10这个时间段 ,一直报错连接不上数据库,再或者 偶尔 连接不上数据库,具体报错类似的报错可能如下:

CannotGetJdbcConnectionException: Failed to obtain JDBC Connection;nested exception is java.sql.SQLTransientConnectionException: DatabookHikariCP - Connection is not available request timed out after 60000ms

原因分析:

1.连接池满了导致的,相关配置是 maximumPoolSize:10
2.sql事务执行时间过长,导致锁表
3.mysqldump备份程序导致锁表了,我的问题属于这种场景,本人对比了dump下来的文件时间刚好和 线上告警连接不上数据库的时间吻合,于是 做了验证,发现mysqldump默认情况 dump的时候会锁表


解决方案:

1.第一种情况。加大配置
maximumPoolSize:60
2.第二种情况:优化sql
3.第3种情况: 加上mysqldump的时候 加上–skip-opt,–single-transaction等参数防止锁表,主要还是靠–single-transaction解决的

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

day-day-up2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值