线上微信小程序无法登录问题

反馈

客户反馈无法线上小程序无法登录

复现

因为本地有为微信开发者工具,所以本地很快复现,找到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导致数据库连接池被占满,

改进

告警补全

 

posted @ 2023-11-27 22:55  使用D  阅读(61)  评论(0编辑  收藏  举报