0

私は redis / node.js サーバーを実行していて、

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

私の現在の設定では、heroku アプリの最大同時接続数 (256、または dyno あたり 128) に達するまで接続を追加する接続マネージャーがあります。その場合、既存の接続を提供するだけです。それは超高速で、機能しています。

ただし、昨日の夜にこのエラーが発生し、再現できませんでした。これはまれなエラーである可能性があり、よく眠れません。理由: エラーがスローされると、アプリにアクセスできなくなります。

だから私の質問は次のようになります:

  • そのような接続マネージャーは良い考えですか?

  • そのマネージャーを使用して「アイドル」が呼び出されるのを待ち、接続を閉じる方が良いでしょうか。つまり、リクエストが発生するたびに接続を再確立する必要がありました (これは私が避けたかったことです)。

  • アプリがダウンしないようにするにはどうすればよいですか? エラーが発生するたびに接続プールをフラッシュする必要がありますか?

特定の最大数で複数の同時接続を処理するための一般的な戦略は何ですか?

4

1 に答える 1

0

誰かが一緒に読んでいる場合:

このエラーは、ライブにデプロイしたredis0.8.xの混乱が原因で発生しました。

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

私は接続プールから失敗した接続を削除するのに十分賢いのですが、接続プールで'.quit()'を呼び出すのを忘れていたため、接続は実際には存在していましたが、それでも接続でした。

于 2012-11-13T10:20:05.430 に答える