我看线上日志出现多次Unhandled rejection SequelizeConnectionError: ER_CON_COUNTERROR: Too many connections,不知道是什么没处理好,目前连接池设置为 pool: { max: 30, min: 0, idle: 10000 } Too many connections是指打开的数据库连接太多,而关闭的不及时?也就是产出>消费的速度,这样理解对吗? 或者急救措施,怎么能够捕捉SequelizeConnectionError的异常?我看sequelize API中有new ConnectionError()这类异常 是在这里加吗:var sequelize = new Sequelize(dbname,username,passwd,conf),sequelize.on(‘error’,function(){}) 还请各位大侠帮忙指点迷津哈!谢谢
sequelize有主动release的操作吗?
@imhered 没有,貌似它自动release
并发量怎样?
@yjhjstz 每秒十几个请求吧,不算高,系统中我尽量没多次操作数据库
没有哪位朋友遇到类似的情况吗?请帮忙指点一二哈,吐槽下也可以
连接数太多是不是修改下数据库设置,或者再堆些硬件?
@liuxufei 在本地和阿里云mysql都会出现,应该不是硬件问题,我用sequelize操作mysql,如果把连接池max: 30设置小点,这种问题出现少些,但出现这种问题的根源是什么呀?
可能原因: 因为 my.ini 中设定的并发连接数太少或者系统繁忙导致连接数被占满。 解决方式: 打开 MYSQL 安装目录打开 my.ini 找到 max_connections 默认是 100, 一般设置到500~1000比较合适,重启 MySQL 。
@liuxufei 我看阿里云RDSmysql数据库监控报告,最大连接数上限是600多,历史记录中实际最大连接数100都不到
sequelize出问题了,你监听redis错误干嘛?Redis.createClient().(‘error’,function(){})
@imhered 啊?才发现我贴错了啊, var sequelize = new Sequelize(dbname,username,passwd,conf); 这里我看api没有监听错误,是不是应该sequelize.on(‘error’,function(){})?我以前没加
求问楼主发现解决方法了么
@lanyanai 还是mongo主从节点的连接池大小设置问题,导致有些连接无法释放