編集
質問を一番上に移動しました。問題の説明は、検索のヘルプと、誰かが必要とする可能性のある背景情報のために残します。
kestrel で memcached ライブラリを使用する場合、クラスター内で 2 台以上のサーバーを使用し、信頼できる読み取り機能 (またはその他の機能) を利用すると、memcached ハッシュ アルゴリズムが常に間違った場所に表示される可能性はありませんか? memcached ライブラリのハッシュ アルゴリズムを変更する必要がありますか? 何か不足していますか?誰にも洞察力がありますか?
背景情報
Kestrel ユーザーは、任意の memcached ライブラリを使用して Kestrel クラスターに接続し、アイテムをキューから出し入れすることができると自慢しています。これについて考えると、それは欠陥があるように思えます。Memcached は、構成されているハッシュ アルゴリズムに基づいて、クライアントがキーの保存場所または保存場所を決定するため、サーバー間通信なしでクラスター内で動作します。
kestrel のドキュメントでは、クライアントがランダムな kestrel ノードに接続してキューの読み取りまたは書き込みを行うため、kestrel が「ほぼ公正」であることが説明されています。memcached クライアントを使用する場合、memcached のクライアントは一貫したハッシュ アルゴリズムを使用するため、クライアントは常に同じ場所でキューを検索します。明らかに、クラスター内で 1 つの kestrel サーバーのみを使用している場合は問題ありません。参照する場所は 1 回だけです。複数のノードを使用する場合でも、静的なキュー名にアクセスしているため、ハッシュ アルゴリズムは常に同じ場所を参照しているので問題ない場合があります。
ただし、追加の機能は、クライアントからアクセスしているキュー名を変更することによって相互作用する kestrel で公開されます (信頼できる読み取りは、/open を追加することで開始され、/close で終了します)。これにより、理論的には、クライアントは一貫してキューの間違った場所を検索し、キュー オブジェクトを取得することはありません。キュー オブジェクトは一貫して単一のノードに書き込まれ、一貫して別のノードから読み取られるためです。
ありがとう!