我正在运行一个 redis/node.js 服务器并且有一个
[Error: Auth error: Error: ERR max number of clients reached]
我当前的设置是,我有一个连接管理器,它会添加连接,直到达到我的 heroku 应用程序的最大并发连接数(256 个,或每个 dyno 128 个)。如果是这样,它只是提供一个已经存在的连接。它速度超快,而且运行良好。
但是,昨天晚上我遇到了这个错误,我无法重现它。这可能是一个罕见的错误,我睡得不好,知道它在那里。因为:一旦抛出错误,我的应用程序将无法再访问。
所以我的问题是:
这种连接管理器是个好主意吗?
使用该管理器等待“空闲”被调用并关闭连接是否更好,这意味着每次请求启动时我都必须重新建立连接(这就是我想要的避免)
如何阻止我的应用停止运行?我应该在发生错误时刷新连接池吗?
处理具有给定最大值的多个并发连接的一般策略是什么?
最佳答案
如果有人正在阅读:
错误是由于我部署到 live 的 redis 0.8.x 乱七八糟造成的:
https://github.com/mranney/node_redis/issues/251
我足够聪明,可以从连接池中删除失败的连接,但忘记在其上调用“.quit()”,因此连接在野外但仍然是连接。
关于node.js - 在 redis/heroko/node.js 上捕获身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322665/