0

我正在运行一个 redis / node.js 服务器并且有一个

[Error: Auth error: Error: ERR max number of clients reached]

我当前的设置是,我有一个连接管理器,它添加连接,直到达到我的 heroku 应用程序的最大并发连接数(256,或每个测功机 128)。如果是这样,它只是提供一个已经存在的连接。它速度超快,并且正在工作。

但是,昨天晚上我收到了这个错误,我无法重现它。这可能是一个罕见的错误,我知道它就在那里,我睡得不好。因为:一旦引发错误,我的应用程序将无法再访问。

所以我的问题是:

  • 这种连接管理器是个好主意吗?

  • 使用该管理器等待调用“空闲”并关闭连接会更好吗,这意味着每次请求启动时我都必须重新建立连接(这是我想要避免的)

  • 如何阻止我的应用程序关闭?每当发生错误时,我是否应该刷新连接池?

您处理具有给定最大值的多个并发连接的一般策略是什么?

4

1 回答 1

0

如果有人正在阅读:

该错误是由我部署的一个混乱的 redis 0.8.x 引起的:

https://github.com/mranney/node_redis/issues/251

我足够聪明,可以从连接池中删除失败的连接,但忘记在其上调用“.quit()”,因此连接在野外但仍然是连接。

于 2012-11-13T10:20:05.430 回答