workerman http 并发上去了 后mysql 报错
后端
BUG

workerman http 并发上去了 后mysql 报错

已采纳
YANG001
YANG001
这家伙很懒,什么也没写~
1天前

首先请了解单例模式的连接资源的释放

由于Workerman不会在每次请求后释放全局对象及类的静态成员,在数据库等单例模式中,往往会将数据库实例(内部包含了一个数据库socket连接)保存在数据库静态成员中,可能导致大量的未释放链接句柄

但是,默认情况下的workerman模块已经对数据库链接进行了处理和调试,一个进程的所有请求共用单个链接,建议着重检查二开部分的代码。

还有可能是数据库配置的 max_connections 值过小,可直接适当调大观察情况

xiaobin
xiaobin回复YANG001
这家伙很懒,什么也没写~
1天前

二开的哪些操作会 造成 一个请求一个 链接并且不会释放呢

YANG001
YANG001回复xiaobin
这家伙很懒,什么也没写~
1天前

比如启动服务时就调用了Db类

xiaobin
xiaobin回复YANG001
这家伙很懒,什么也没写~
10小时前


业务中使用了蛮多的 Db 事务 这算吗

YANG001
YANG001回复xiaobin
这家伙很懒,什么也没写~
3小时前

无法确定哈,你可以通过实时查询数据库的当前连接列表进行调试,比如 SHOW PROCESSLIST; 命令

0个回答默认排序 投票数排序
没有更多回答了~
请先登录
0
1
0
5