2017-04-19 3 views
1

メインサーバが.NET上で実装されている間に、システム間/言語の互換性を最大限に高める必要がある場合は、NServiceBusまたはMassTransitを使用できますか、純粋なRabbitMQを使用する方が良いでしょうか? NServiceBusまたはMassTransitはかなり優れた抽象的なレベルを提供しますが、さまざまなソリューションと環境の間のコミュニケーションの容易さは非常に重要です。私は今、純粋なRabbitMQを使用することをもっと考えていますが、私が間違ってそれを考慮している場合、いくつかの長所と短所を指して本当に感謝しています。システム間の互換性が最大です - 純粋なRabbitMQまたはNServiceBus、MassTransit?

+0

https://docs.particular.net/nservicebus/messaging/third-party-integrationが、私はここに同様の質問に答え:http://stackoverflow.com/questions/25953891/why-do-we-need-サービスバス - フレームワークのようなサービスバス - 私の頂上でのトランジット - 25957608#25957608 –

答えて

4

言語が異なる複数のアプリケーションがあり、メッセージの送受信が必要な場合は、NServiceBusまたはMassTransitはお勧めしません。彼らは彼ら自身が追加する特定のメッセージヘッダーを必要とします。これらのメッセージングフレームワークが提供するすべての機能を活用することは決してできません。しかし、内部的にはすべて.NETであり、メッセージングインフラストラクチャを使用する複数のアプリケーションがある場合、NServiceBusとMassTransitは多くの価値を追加します。

第三者との相互運用性についてNServiceBusとMassTransitの両方の長所と短所は、強く型付けされたクラスやインタフェースとしてメッセージを送受信する必要があることです。これらはJSON/XML/BSONなどにシリアル化され、デシリアライズされて再び型に戻ります。

このため、デシリアライズの目的でメッセージの種類を示すメッセージヘッダーが必要です。メッセージタイプヘッダーがなければ、動作しません。

種類の操作ははるかに簡単ですが、相互運用性の問題が発生する可能性があります。タイプのないXMLまたはJSONメッセージを送信するサードパーティとの統合では、サービスとサードパーティの間に翻訳層を作成する必要があります。

XML/JSONにマッピングする独自の型に変換することも、XML/JSONの文字列プロパティを含む単純型に変換することもできます。いずれにしても、翻訳層はMassTransit/NServiceBusを使用してメッセージを内部的に公開するため、メッセージには、提供するすべての機能を完全に活用するために必要なヘッダーがすべて含まれます。

第三者にメッセージを送信する場合、翻訳層はメッセージを第三者が期待するXML/JSONに変換します。

サードパーティ/システム間の統合にどのくらいのメッセージングシステムが関係していますか?答えが非常に少ない場合、NServiceBusとMassTransitは素晴らしい機能を多数提供するため、素晴らしい選択肢になります。

回答が多ければ、まだ良い選択肢かもしれません。翻訳層を用意することで、内部サービスが第三者の要件やスキーマの変更にさらされるのを防ぐことができます。余分に動く部品を犠牲にして、より大きなコントロールと柔軟性を提供します。

最終的に、トランスレーション層は、NServiceBusとMassTransitによってすぐに提供されるパターンを実装するほど複雑ではありません。だから私は真剣にそれらを実行可能な選択肢と考えています。相互運用性に関する

いくつかのリンクは

http://masstransit-project.com/MassTransit/advanced/interoperability.html

+0

こんにちはVanlightly!あなたの説明をありがとう。翻訳層がRebbitMQに直接話す必要がある場合、またはこの層がNServiceBus/MassTransin(JSON文字列にシリアル化してNServiceBus/MassTransinを送信する場合など)と連携する必要がある場合は、 – Oleksii

+0

"翻訳層"はNServiceBus/MassTransitを内部システムに話し、第三者の外部のプロトコル/技術を話します。詳細は実際にあなたの状況の詳細に依存します。もう少し詳細を与えることができれば、私は答えがあまり抽象的ではないかもしれません – Vanlightly

+0

この最高のIMOを合計した文章は「最終的に、翻訳層はすぐに使えるパターンを実装するほど複雑ではありませんNServiceBusとMassTransitによって、私は真剣にそれらを実行可能な選択肢と考えています。 –

関連する問題