1

私は RabbitMQ で MassTransit を使用しています。

これが何が起こるかの要約です。

  1. オーダーを取得して (MassTransit を使用して)オーダーメッセージを発行するアプリケーションであるORDER SERVER 。

  2. PROCESSING UNITはOrderメッセージを消費して何らかの処理を行い、OrderProcessedを発行するアプリケーションです。

したがって、ここでPROCESSING UNITは消費と発行の両方を行っています。

私が読んだブログ、ドキュメント、フォーラムでは、すべてのアプリに独自のキューが必要であると読んでいましたが、それを行いましたが、それでも大量のメッセージ (約 30%) がエラー キューに送られ、 PROCESSING UNITで2 つのキューでそれを行うと機能します大丈夫です。(処理ユニットには、消費するためだけに別のキューを持つ 1 つの IServiceBus と、公開するためだけに別のキューがあることを意味します)

私のデザインが正しいかどうか疑問に思っていました。このままではいけない気がします。

ありがとう、

ペイマン

4

2 に答える 2

1

プロセスごとに複数のバスを使用できます (それぞれが独自のキューに関連付けられています)。実際、キューが 1 つのコンシューマーのメッセージ タイプによって独占されないようにするための推奨される方法です。

その場合、バス インスタンスとそれぞれが提供するコンシューマーとの間のバインディングを明示的に指定する必要があるため、DI を使用してバスを構成するのは難しいかもしれません。

それらを個別のアプリケーション/サービスに分割する方が簡単かもしれませんが、展開と構成が面倒になる可能性があることはわかっています.

ただし、「公開のキュー」は意味がありません。Travis が言ったように、グループに詳細を投稿すると、そこで多くの助けが得られます。

于 2013-07-03T12:24:52.407 に答える
1

IServiceBus1 つのプロセス内で発行および使用するために必要なのは 1 つだけです。あなたIServiceBusのコンテナにシングルトンはありますか?いくつかのサンプル コード ( のセットアップ方法などIServiceBus) を収集し、それをメーリング リストhttps://groups.google.com/forum/?fromgroups#!forum/masstransit-discussに提供することをお勧めします。もう少し情報がないと解決策を提供するのは困難です。

于 2013-07-03T03:01:59.963 に答える