提问者:小点点

Azure服务总线速度


当我尝试从简单控制台应用程序(不在调试模式下)向Azure服务总线队列发送1000条简单消息时,超文本传输协议模式需要90秒。

使用标准nettcp模式需要70秒。

其他人的速度也一样吗?我期望它走得更快,但也许这是正确的?


共2个答案

匿名用户

您是否在同一个线程中执行所有这些操作?尝试使用多个线程/任务并行提交消息。此外,如果您想要更高的吞吐量,您可以尝试对您的app. config进行一些更改:

  <system.net>
    <settings>
      <servicePointManager expect100Continue="false" useNagleAlgorithm="false"/>
    </settings>
    <connectionManagement>
      <add address = "*" maxconnection = "48" />
    </connectionManagement>
  </system.net>

最后,尝试从Windows AzureVM(最好是同一数据中心)中执行控制台应用。这将排除WAN连接的任何影响。

匿名用户

还要考虑利用批处理发送方法。AzureSDK在服务总线客户端队列上有一个方法,允许你一次发送一批消息。它以较大的调用为代价减少了总网络开销。您可以将批处理大小调整为适合您的最大值,并将消息排队,直到您填满一批或达到某个超时。这允许您批处理,但仍能在合理的时间内响应。