欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

生产问题三:前端显示网络错误,后端日志显示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配置文件。下次定修打补丁时,再进行重启服务