現在の Web アプリケーション (REST) に NServiceBus/MSMQ を統合しようとしています。
プロファイラーを実行すると、メッセージをキューに送信するのに多くの時間が費やされているようです (プロファイラーのスクリーン ショット1を参照してください。強調表示されている 30 は、全体の実行時間の 30% です)。メッセージを MSMQ に送信するだけで、(リモート サーバーで実行されている) Mongo に新しいドキュメント セット全体を保存するよりも約 2 倍の時間がかかります。
MSMQ キューへのメッセージの送信が遅いのは正常ですか、それとも構成の微調整が欠けているのでしょうか?
以下は、現在のバス構成です (NServiceBus のドキュメントに基づく - http://support.nservicebus.com/customer/portal/articles/894008-using-nservicebus-with-asp-net-mvc ):
// NServiceBus configuration
Configure
.WithWeb()
.CastleWindsorBuilder(_container)
.JsonSerializer()
.Log4Net()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(true)
.UnicastBus()
.ImpersonateSender(false)
.SendOnly();
および web.config:
<MessageForwardingInCaseOfFaultConfig ErrorQueue="Error" />
<MsmqTransportConfig NumberOfWorkerThreads="1" MaxRetries="5" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="Messages" Endpoint="MessageHandlers" />
</MessageEndpointMappings>
</UnicastBusConfig>