2017-11-21 13 views
0

Azure Service Busの機能を頭に入れようとしています。私は、異なる環境(開発、テスト、ステージングなど)にアプリケーションをデプロイしています。私が見たことから、バスごとに1つのメッセージタイプしか持てませんか?それぞれの環境をサポートするためには、サービスバスの別のインスタンスが必要なのでしょうか?私はMasstransitを使用しています。標準バージョンのサービスを実行する必要があるため、毎月各インスタンスごとに多額のお金を払わなければなりません。回避策はありますか?代わりにRabbitMQを使用していますか?Azure Service Busで同じタイプの複数のメッセージが表示される

+0

「バスごとに1つのメッセージタイプしか持たない」ということを具体的に説明してください。 –

+0

サービスバス自体にはこれらの制限がありません。異なるキューに異なるメッセージを送信し、同じ名前空間内の異なる環境のキューを持つことができます。それが良いかどうかは、あなたのシナリオによって決まります。私は、Mass Transitが許可しているかどうかわかりません。 – Mikhail

+0

@ Gaurav Mantri私が意味することは、すべての環境、つまりNotifyMessageでメッセージに対して同じクラスを持つということです。私は、もし私が十分なだろう各環境のためのサービスバス内の別のエンドポイントを持っていたと思ったが、明らかにこれはどのようにサービスバスのルーティングが動作していないのですか? – Bartosz

答えて

1

ここに複数のものを混ぜているようです。具体的には、MassTransitトポロジとAzureサービスバスサービスです。複数の環境(例えばtestprodなど)のエンドポイントを同じAzure Servie Busネームスペースに配置すると、MassTransitがエンドポイントに必要な同じエンティティを両方ともtestprodに使用するため、明らかに衝突します。

代わりに、環境ごとに名前空間を使用する必要があります。私。 2つの名前空間を作成します(たとえば、project-test.servicebus.windows.netおよびproject-prod.servicebus.windows.net)。このようにして、同一のエンティティを作成する同じMassTransitエンドポイントを展開できますが、名前空間によって分離されます。

スタンダード層では、作成している名前空間の数ではなく、サービス利用の月額料金(すべてのメッセージトランザクションに加えて、明確になる)を支払っています。

+0

説明をいただきありがとうございます – Bartosz

関連する問題