反馈
客户反馈无法线上小程序无法登录
复现
因为本地有为微信开发者工具,所以本地很快复现,找到traceid,查询sls日志,发现有问题日志:
### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications linkfailure
日志指向数据库通讯有问题,进一步查询发现更多mysql问题日志:
[DubboServerHandler-11.10.21.10:2088-thread-293] ERROR c.a.druid.pool.DruidPooledStatement(360) - CommunicationsException, druid version 1.1.18, jdbcUrl : jdbc:mysql://XXXXXX?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai, testWhileIdle true, idle millis 10314, minIdle 0, poolingCount 34, timeBetweenEvictionRunsMillis 70000, lastValidIdleMillis 10314, driver com.mysql.cj.jdbc.Driver, exceptionSorter com.alibaba.druid.pool.vendor.MySqlExceptionSorter
从日志可以看到是数据库链接池有问题。
timeBetweenEvictionRunsMillis:验证连接是否有效的时间周期
lastValidIdleMillis :上一次连接有效的时间
查询
通过阿里云的“数据库自治服务/实例监控/慢日志”查询慢sql情况
- 有表没有增加索引导致
- 一次返回数据量过大:600万
通过阿里云arms查看能够看到之前每天都在报这个错误信息
分析
慢sql导致数据库连接池被占满,
改进
告警补全
标签:jdbc,登录,true,微信,线上,mysql,日志,com From: https://www.cnblogs.com/use-D/p/17858977.html