1
我们正在尝试将NServiceBus/MSMQ集成到我们当前的Web应用程序(REST)中。NServiceBus与MSMQ性能差
运行探查,似乎一个大量的时间花费将消息发送到队列(见探查屏幕截图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>
你在NServiceBus上有什么版本? – 2013-04-10 22:42:44
你是如何描述这个的?调试器是否连接?你发送了多少封邮件? – 2013-04-10 22:44:10
@JohnSimons:NSB版本是3.3.5。我们使用ANTS分析器对其进行了分析,并对我们的API进行了25K次调用;在每次迭代中,应用程序都会将少量小文档保存到Mongo中,并向NSB发送消息以进行审计。调试器未连接。 在没有连接配置文件的单独机器上,我们还在NSB和Mongo调用周围添加了一些时间日志,并且NSB发送操作一直较慢(有时差不多慢10倍)。 – 2013-04-11 07:24:27