これは非常に単純な質問かもしれませんが、これに対する適切な答えをまだ見つけることができませんでした。多分誰かが私を助けることができます。
リーダーが選出されると、
- クライアントはすべてのリクエストをリーダーのみに送信します。これは正しいです?
- リーダーの場所 (すべての実用的な目的では IP アドレス) が動的であるとすると、クライアントはクラスター内のこの IP アドレスをどのように知るのでしょうか?
クライアントは、クラスター内の任意のホストに要求を送信しようとします。クライアントが間違っていると推測した場合、サーバーはリクエストをリーダーに転送するか、リーダーであると判断した人のアドレスを含むエラーを返します。
最初の方法 (リーダーへの転送) は、クライアントにとってより良いエクスペリエンスです。クライアントの転送ホップとタイムアウトの数を必ず制限してください。
2 番目の方法 (リーダー アドレスのエラー) は、実装がはるかに簡単です。リーダーは通常、問題が発生したときを除いて寿命が長いため、通常、リーダーへの要求を取得するのに 1 回の再試行しかかかりません。