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