特定のサーバーのメモリ負荷を軽減するために、クラスターの 2 つのサーバーの一部にある 2 つのキューにメッセージを配信したいトピック交換があります。私のコンシューマは定期的に遅くなり、メモリのウォーターマークが高くなることがあります。
私がこれを解決しようとした方法は、中間の直接交換を使用してメッセージをルーティングし、2 つのキューを交換にバインドすることです。
a (topic) -> a1 (direct) -> q1/q2 (bound to routing key "a")
しかし、メッセージは AMQP の意図どおりに両方のキューにルーティングされました。誰にもアイデアがありますか?私が必要としているのは、ルーティング キーが多くのキューに一致する場合でも、1 つのキューだけにルーティングする交換です。ルーティング キーを変更したくないのですが、変更することはできます。
私は、RabbitMQ を使用した選択的ルーティングを見つけました。これは、独自のルーティング ロジックを実装する必要があることを意味する可能性があります。うまくいけば、これはすでにどこかに存在しています。