C# NServiceBus在MSMQ上的性能不佳

C# NServiceBus在MSMQ上的性能不佳,c#,.net,msmq,nservicebus,C#,.net,Msmq,Nservicebus,我们正试图在当前的web应用程序(REST)中集成NServiceBus/MSMQ 运行探查器时,似乎要花费大量的时间将消息发送到队列(请参见探查器屏幕截图,如果突出显示的30是总执行时间的30%)。仅向MSMQ发送消息所需的时间大约是在Mongo(在远程服务器上运行)中保存一整套新文档所需时间的两倍 向MSMQ队列发送消息有这么慢是正常的还是我们缺少了一些配置调整 以下是我们当前的总线配置(基于NServiceBus文档-): 和web.config: <MessageForwardi

我们正试图在当前的web应用程序(REST)中集成NServiceBus/MSMQ

运行探查器时,似乎要花费大量的时间将消息发送到队列(请参见探查器屏幕截图,如果突出显示的30是总执行时间的30%)。仅向MSMQ发送消息所需的时间大约是在Mongo(在远程服务器上运行)中保存一整套新文档所需时间的两倍

向MSMQ队列发送消息有这么慢是正常的还是我们缺少了一些配置调整

以下是我们当前的总线配置(基于NServiceBus文档-):

和web.config:

 <MessageForwardingInCaseOfFaultConfig ErrorQueue="Error" />
 <MsmqTransportConfig NumberOfWorkerThreads="1" MaxRetries="5" />
 <UnicastBusConfig>
   <MessageEndpointMappings>
     <add Messages="Messages" Endpoint="MessageHandlers" />
   </MessageEndpointMappings>
 </UnicastBusConfig>

这看起来像是一个问题。 事务性MSMQ并没有针对快速写入进行优化。

这看起来像是一个错误。
事务性MSMQ根本不适合快速写入。

您使用的是NServiceBus上的哪个版本?您是如何配置的?调试器是否已连接?你发了多少条短信?@JohnSimons:NSB版本是3.3.5。我们使用ANTS profiler对其进行了分析,对我们的API进行了25K调用;在每次迭代中,应用程序都会将少量小文档保存到Mongo中,并向NSB发送一条消息以供审核。未附加调试器。在另一台没有附加探查器的机器上,我们还添加了一些有关NSB和Mongo调用的计时日志,NSB发送操作一直较慢(有时几乎慢10倍)。您每秒收到多少消息?(我的机器上大约有4000个消息/秒在执行普通发送)你在本地运行mongo吗?你在NServiceBus上运行的是什么版本?你是如何分析它的?调试器是否已连接?你发了多少条短信?@JohnSimons:NSB版本是3.3.5。我们使用ANTS profiler对其进行了分析,对我们的API进行了25K调用;在每次迭代中,应用程序都会将少量小文档保存到Mongo中,并向NSB发送一条消息以供审核。未附加调试器。在另一台没有附加探查器的机器上,我们还添加了一些有关NSB和Mongo调用的计时日志,NSB发送操作一直较慢(有时几乎慢10倍)。您每秒收到多少消息?(我的机器上大约有4000个msg/s在执行普通发送)您在本地运行mongo吗?
 <MessageForwardingInCaseOfFaultConfig ErrorQueue="Error" />
 <MsmqTransportConfig NumberOfWorkerThreads="1" MaxRetries="5" />
 <UnicastBusConfig>
   <MessageEndpointMappings>
     <add Messages="Messages" Endpoint="MessageHandlers" />
   </MessageEndpointMappings>
 </UnicastBusConfig>