6

単純なコンソールアプリケーション(デバッグモードではない)からAzure Service Busキューに1000の単純なメッセージを送信しようとすると、httpモードでは90秒かかります。

標準のnettcpモードでは、70秒かかります。

他のみんなのスピードもありますか?もっと速くなると思っていたのですが、これは正しいのでしょうか?

4

2 に答える 2

6

これらすべてを同じスレッドで実行していますか?複数のスレッド/タスクを使用してみてください。メッセージを並行して送信してください。また、より高いスループットが必要な場合は、app.configにいくつかの変更を加えることができます。

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

最後に、Windows Azure VM(できれば同じデータセンター)内からコンソールアプリを実行してみてください。これにより、WAN接続の影響が排除されます。

于 2012-10-12T09:07:21.633 に答える
1

また、バッチ送信方法の活用も検討してください。Azure SDKには、Service Busクライアントキューに、メッセージのバッチを一度に送信できるメソッドがあります。大規模な通話を犠牲にして、ネットワークの総オーバーヘッドを削減します。バッチサイズを調整して、自分に合った最大値にし、バッチがいっぱいになるか、特定のタイムアウトに達するまでメッセージをキューに入れることができます。これにより、バッチ処理を行うことができますが、それでも妥当な時間で応答します。

于 2017-10-07T19:20:03.287 に答える