當我嘗試從簡單控制檯應用程序(不處於調試模式)向我的Azure服務總線隊列發送1000條簡單消息時,使用http模式需要90秒。Azure服務總線速度
使用標準nettcp模式需要70秒。
其他人的速度也得到了嗎?我預計它會更快,但也許這是正確的?
當我嘗試從簡單控制檯應用程序(不處於調試模式)向我的Azure服務總線隊列發送1000條簡單消息時,使用http模式需要90秒。Azure服務總線速度
使用標準nettcp模式需要70秒。
其他人的速度也得到了嗎?我預計它會更快,但也許這是正確的?
你是在同一個線程中完成所有這些嗎?嘗試使用多個線程/任務並行提交消息。另外,如果你想要更高的吞吐量,你可以嘗試做一些改變你的app.config:
<system.net>
<settings>
<servicePointManager expect100Continue="false" useNagleAlgorithm="false"/>
</settings>
<connectionManagement>
<add address = "*" maxconnection = "48" />
</connectionManagement>
</system.net>
最後,嘗試從Windows Azure的VM(最好是同一個數據中心)內執行的控制檯應用程序。這將排除您的WAN連接的任何影響。
另請參閱利用批處理髮送方法。 Azure SDK在Service Bus Client Queue上有一個方法,允許您一次發送一批消息。它以更大的呼叫爲代價減少了總的網絡開銷。您可以將批處理大小調整爲適合您的最大值,並對消息進行排隊,直至填滿批處理或達到特定超時時間。這可以讓您批量生產,但仍能在合理的時間內作出響應。
嘗試使用中型或更大型虛擬機,較小的虛擬機具有有限的IO。 –
Parallel.For(0,1000,i => SendM(i,client))並且您的配置更改將時間縮短爲10秒。謝謝! – Martin