たとえば、predis接続プールにN台のサーバーがあります。サーバーの1つがダウンすると、predisが機能しないことがわかりました(つまり、サーバーSiのいずれかがダウンしていると、新しいpredis / client(s1、s2、...)が正常に返されません)。まず、障害が発生したサーバーのエントリを手動で削除する必要があります。これは、このpredisが作業を再開した後でのみです。predisはコンシステントハッシュ法を使用していると主張しているので、これはpredisが応答していない(および失敗した)サーバーを自動的に検出し、失敗したサーバーに保存されているキーを他の稼働中のサーバーに配布する場合ではないでしょうか?
質問する
633 次
1 に答える
0
Predisはコンシステントハッシュを使用しますが、プール内のすべてのサーバーが稼働して応答していることを確認するのはユーザーの責任です。サーバーの可用性の監視は、コンシステントハッシュ法によって本質的に暗示されるものではありません。
接続を試みる前に各サーバーをチェックし、チェックに基づいて接続プールを変更できます。プールで使用可能なサーバーリストを別の場所に保存し、他のプロセスで使用可能なサーバーリストを常に監視および変更することができます。それらは常にすべて稼働していると想定し、障害が発生したときに削除する必要があるものだけを確認するか、上記の任意の組み合わせを使用できます。肝心なのは、predisは現時点ではあなたに代わってそれを行わないということです。
于 2011-09-26T03:17:56.510 に答える