NServiceBusで組み込みのMSMQメッセージトランスポートを使用する代わりに、SQL Serverを物理メッセージトランスポートとして使用する方法はありますか?
ありがとう
NServiceBusで組み込みのMSMQメッセージトランスポートを使用する代わりに、SQL Serverを物理メッセージトランスポートとして使用する方法はありますか?
ありがとう
SQL Serverには、ServiceBrokerの形式のメッセージが組み込まれています。これにより、SQL Serverインスタンス間で、さまざまな効率的、高速、高スループット、非同期、および信頼性の高いメッセージングトランスポートが提供されます。SQL ServerExpressがServiceBrokerをサポートしていることを考えると、SQLインスタンスのみを対象としているという事実は、中央の上位エディションのSQLインスタンスとメッセージを交換するために、地理的に分散された数十、数百のExpressを使用する展開を知っています。 。
主な問題は、C#/。Net APIの欠如であり、WCFチャネルもNServiceBusもサポートされていません。これに対処しようとするさまざまなプロジェクトがあり、多かれ少なかれ成功しています。最終的には、決定の推進要因が何であるかによって異なります。NServiceBusなどの既存のメッセージングバスとの統合、またはsQLServer独自のバスに依存するという犠牲を払った生のパフォーマンスと信頼性です。
このような古いトピックに回答して申し訳ありませんが、SQLサーバーをメッセージトランスポートとして使用する.Netメッセージバスプロジェクトがあります:NGinn.MessageBus(http://code.google.com/p/nginn-messagebus/)。これは、SQLServerをすでに使用しているアプリケーション用に特別に作成された私のペットのオープンソースプロジェクトです。プロジェクトは、本番環境で使用できるほど成熟しています。詳細については、プロジェクトのWebサイトを参照してください。
NServiceBus 3.0では、2.6と比較して、独自のトランスポートメカニズムのプラグインがはるかに簡単になりました。2.6では、巨大なITransportインターフェースを実装します。3.0では、ISendMessagesとIReceiveMessagesを実装するだけで済みます。
NServiceBus 4.0では、トランスポートメカニズムとしてSQL Serverを使用できるようになったため、ITransportなどを実装する必要はありません。
これを実現するために、カスタムITransportの実装を検討することをお勧めします。