我们正在尝试将 NServiceBus/MSMQ 集成到我们当前的 Web 应用程序 (REST) 中。
运行分析器,似乎花费了大量时间将消息发送到队列(请参见分析器屏幕截图1,突出显示的 30 是总执行时间的 30%)。仅将消息发送到 MSMQ 所花费的时间大约是在 Mongo 中保存一组全新文档(在远程服务器上运行)的两倍。
向 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>