私の理解から、RabbitMQクラスタリングはスケーラビリティのためのものではありませんが、ミラーリングされたキューを使用することで、最新のスレーブをマスタに昇格させることができます。ドキュメントから 高可用性のためのRabbitMQクラスタリングキューミラーリング:時間tのキューのマスターノードのIPを取得
:キューにパブリッシュメッセージは、すべてのスレーブに複製されています。コンシューマは、どのノードに接続しているかにかかわらずマスタに接続され、スレーブはマスタで確認応答されたメッセージをドロップします。したがって、キュー・ミラーリングは可用性を向上させますが、ノード間で負荷を分散させることはありません(参加しているすべてのノードがそれぞれすべて作業を行います)。
(私は何かを誤解していない限り)、これは常にキューのマスターノードに接触ノードから余分な旅行を追加しますしたがって、ロードバランシング、指定されたキューのためのノード間では意味がありません。 。したがって、どのノードが特定のキューのマスターであるかを常に知りたいと考えています。
私は本当にRabbitMQを使っていませんでしたので、おそらく私はドキュメントでそれを見逃していますが、マスターの障害があった場合、ミラーキューのマスターのIPを特定する方法はないようですスレーブはマスターに昇進しました。私が見ているすべての情報源は、最初のマスターノードを設定する能力については言及していませんが、これはあまり役に立ちません。任意の時間tに対して、どのようにして特定のキューのマスタノードIPを見つけることができますか?
PS:ロードバランサの後ろにノードを置くことは、同じLAN内のノードでも発生する可能性のあるネットワークパーティションがあるため、待ち行列のためにマスターとコミュニケーションを取るか、悪化すれば、もしあなたが進化していくと分裂する脳があるかもしれません。
それについてもっと考えた後、余分なホップはおそらく、ホップをスキップしようとする複雑さが導入するほど大きなものではないでしょう。 –