当我尝试从一个简单的控制台应用程序(非调试模式)向 Azure 服务总线队列发送 1000 条简单消息时,使用 http 模式需要 90 秒。
而使用标准 nettcp 模式需要 70 秒。
这是大家都得到的速度吗?我希望它能更快,但也许这就是正确的速度?
而使用标准 nettcp 模式需要 70 秒。
这是大家都得到的速度吗?我希望它能更快,但也许这就是正确的速度?
你是否在同一个线程中完成所有操作?尝试使用多个线程/任务并行提交消息。此外,如果你想要更高的吞吐量,可以尝试对app.config进行一些更改:
<system.net>
<settings>
<servicePointManager expect100Continue="false" useNagleAlgorithm="false"/>
</settings>
<connectionManagement>
<add address = "*" maxconnection = "48" />
</connectionManagement>
</system.net>
另外,考虑利用批量发送方法。Azure SDK中的Service Bus Client Queue有一种方法可以一次性发送一批消息。它会以更大的调用为代价减少总网络开销。您可以调整批处理大小以使其达到最大值,并在填满一个批处理或达到一定的超时时间之前排队等待消息。这样可以实现批处理,同时仍能在合理的时间内保持响应。