0

MSMQ の上で NServiceBus を使用しています。現在、RabbitMQ を使用する方向に進んでいます。一元化されたキューが必要であり、RabbitMQ がニーズに最適であることがわかりました。

プロジェクトの変換は簡単で、RabbitMQ では、各エンドポイントとそのエンドポイントのメッセージ タイプごとに交換 (およびキュー) が作成されていることに気付きました。

http://docs.particular.net/nservicebus/rabbitmq/configuration-apiの「ルーティング トポロジの変更」セクションを読み、そこに書かれています

それほど複雑でないシナリオでは、DirectRoutingTopology を使用できます

ドキュメントで説明されていないのは、ソリューションを と見なすパラメータですcomplex

DirectRoutingTopology検索したところ、複雑と見なされるものと、複数の交換が使用されるデフォルトのオプションよりもいつ使用すべきかを説明している場所が見つかりませんでした。または、各アプローチの違い/パフォーマンスに関する考慮事項は何ですか。

誰か知っていますか?

4

1 に答える 1

0

これは実際にはパフォーマンスの問題ではなく、可能な限り最良の方法でテクノロジを使用することの問題です。

各キューは、実行される作業の単位となることを意図しています。したがって、messageA を送信するとします。実行する作業単位が 1 つある場合、メッセージを処理するために 1 つのキューで 1 つの交換を行うのが理にかなっています。

アクション XとY の両方を実行する必要がある messageB があるとします。その場合、2 つの異なるキュー (FANOUT Exchange) にメッセージを送信する 1 つの交換があります。

パラメータに基づいてアクション XまたはY を実行する必要がある messageC があるとします。その場合、ルーティングが 2 つの異なるキューに指定された DIRECT 交換を使用する必要があります (ただし、メッセージは 2 つのキューのうちの 1 つにしか到達しません)。

うまくいけば、それは理にかなっています。

于 2015-10-15T18:13:50.550 に答える