克孜勒苏柯尔克孜自治州网站建设_网站建设公司_响应式开发_seo优化
2026/1/18 9:50:34 网站建设 项目流程

多个微服务连接同个Mysql实例,结合数据库本身的连接池,就容易报错Too many connections

即当前所有可用的连接都已被使用,新的客户端连接无法建立。

首先你要看两点:

(1)SHOW VARIABLES LIKE 'max_connections';

(2)有多少微服务节点以及每个微服务节点数据库连接池的最大连接数。

首先我拿我的项目举例,我是4核8G的服务器。

SHOW VARIABLES LIKE 'max_connections'; -- 结果为151

我有8个微服务,每个微服务的druid连接池的max-active(最大连接数)是50。

那么这就有很大问题了,如果我并发很高,8个微服务 * 50最大连接数就是400,而我MySQL数据库设定的max_connections是151,那肯定会报错Too many connections了。

解决办法就是设置max_connections的值高一些,比如刚才算出我们项目最大并发连接数是400,那我这里设置max_connections为500比较好,当然这个数还不完全对,因为要看你的业务,只改max_connections不改max-active也是不行的,再一个也要看你服务器的配置,所以说,架构调优很多时候没有绝对正确的答案,要看你的实际情况。

-- 临时提高连接上限 SET GLOBA

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询