RabbitMQを使用し、層間でメッセージを渡すためのいくつかの異なるキューを持つアプリケーションがあります。
当初は、メッセージタイプごとに1つずつ、複数の直接交換を使用することを計画していましたが、異なるルーティングキーバインディングを使用するキューで単一のトピック交換を行うと、同じことが達成されるようです。
単一の交換を行うことも、保守が少し簡単になるように思われますが、一方の方法でそれを行うことの利点(ある場合)があるかどうか疑問に思いました。
オプション1、複数の直接交換を使用:
ExchangeA (type: direct)
-QueueA
ExchangeB (type: direct)
-QueueB
ExchangeC (type: direct)
-QueueC
オプション2、単一トピック交換を使用:
Exchange (type: topic)
-QueueA (receives messages from exchange with routing key of "TypeA")
-QueueB (receives messages from exchange with routing key of "TypeB")
-QueueC (receives messages from exchange with routing key of "TypeC")