私は現在、メッセージ キュー システムを評価しており、RabbitMq が良い候補のように思われるので、もう少し掘り下げています。
少しコンテキストを与えるために、複数のキューに発行するメッセージを負荷分散する 1 つの交換のようなものを探しています。メッセージを複製したくないので、ファンアウト交換はオプションではありません。
また、消費者とのラウンドロビンを処理する 1 つのキューに対して複数のキューを使用することを考えている理由は、単一障害点をキュー レベルにしたくないからです。
パブリッシャー側にロジックを追加して、ルーティング キーを編集し、適切なバインディングを配置することで、その動作をシミュレートできるように思えます。しかし、これは、各キューでのメッセージ消費のペースを考慮しない一種の受動的なアプローチであり、そのキューのコンシューマ アプリケーションが停止した場合、1 つのキューがいっぱいになる可能性があります。
私は交換エンティティ側からより積極的な方法を探していました。それは、各キュー サイズまたはその性質に基づいて次のメッセージをどこに送信するかを決定します。
Alice と利用可能な RESTful API について読んだことがありますが、これは高速なルーティング決定を実装するための非常に重要なソリューションのように思えます。
交換キュー間のラウンドロビンがRabbitMQで実現可能かどうかは誰にもわかりますか? ありがとう。