生产问题三:前端显示网络错误,后端日志显示too many connections
程序员文章站
2022-07-15 13:27:25
...
问题场景:金融公司推出新的产品,可以进行预约,预约完成后在某个时间点进行秒杀
系统架构:nginx 作为分发器,后端2台Tomcat服务器,连接的mysql单点数据库
系统配置:连接数据库连接池500,Tomcat连接后端数据库线程并发设置20
后端日志报错:too many connections for jdbc source
分析:当秒杀开始时,200多位用户同时涌入,Tomcat后端连接数据库连接数超过数据库的设置导致报错
排查:
1、查看数据库的最大连接数,得到数据为151
show variables like '%max_connections%';
2、明显数据库的配置的最大连接数过小导致Tomcat连接数据库失败,导致报错
3、修改mysql的最大连接数(临时修改,重启失效)
set global max_connections=200
4、永久生效。修改mysql的配置文件:my.ini 或 my.cnf,修改 max_connections=100,该值最大可以达16384
5、重启mysql
由于是生产环境,采取的动作是:先临时修改设置最大连接数,然后修改mysql配置文件。下次定修打补丁时,再进行重启服务
上一篇: spring mvc返回值处理