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