2016-08-12 8 views
0

私はRabbitMQのを経由して2つの異なるqueueusにメッセージを公開しようとしているが、私は期待したものとして物事が動作しませんが、ここでは詳細です。ファンアウト、バインディングはQueue:Q1、Routingキー:key1、Queue:Q2、Routingキー:key2です。私のクライアント側でのRabbitMQは、ルーティング動作

、私はこのコード

var model = connection.CreateModel(); model.ExchangeDeclare("amq.fanout", "fanout", true); model.BasicPublish("amq.fanout", "key1", null, body);

を持っている私は、しかし、Q1とQ2の両方を受信し、それがルーティングキーとしてキー1を持っているので、Q1に体を公開することを想定しています私のコードやサーバーの設定に問題がありますか?

答えて

0

ファンアウト交換機は、使用されているルーティングキーまたはバインディングに関係なく、常にすべてのバインドされたキューにメッセージを配信します。ルーティングキーはファンアウト交換において完全に無視される。

あなたが探しているのはファンアウト交換ではなく、あなたのニーズの説明に基づいています。

使用するルーティングキーに基づいて特定のキューにメッセージを配信する場合は、直接交換(ルーティングキーの単純な照合の場合)またはトピック交換の場合(ルーティングの複雑なパターンマッチングの場合)キー)

+0

デリック、ありがとう、それはあなたのように動作します – Edgar

関連する問題