1

現在の 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>

ANTS プロファイラーのスクリーンショット

4

1 に答える 1