15

50 を超えるさまざまなクライアントからの 1 秒あたり 10,000 件を超える要求を処理できるように、Azure Service Bus トピックをスケーラブルにする方法を理解しようとしています。Microsoft でこの記事を見つけました - http://msdn.microsoft.com/en-us/library/windowsazure/hh528527.aspx。これにより、複数のメッセージ ファクトリの作成、非同期での送受信、バッチ送受信の実行など、Azure Service Bus をスケーリングするための多くの優れた入力が提供されます。

ただし、これらの入力はすべて、パブリッシャーとサブスクライバーのクライアントの観点からのものです。トピックを実行しているノードが膨大な数のトランザクションを処理できない場合はどうなりますか? どうすればそれを監視できますか? トピックを複数のノードで実行するにはどうすればよいですか? それに関する任意の入力が役立ちます。

また、トピック/キューで容量テストを行った人がいるかどうか疑問に思っており、それらの結果を知りたいと思っています...

ありがとう、プラサンナ

4

4 に答える 4

13

1 秒あたり 10K または 100K または 1M またはそれ以上のリクエストが必要な場合は、高速道路で何が行われているかを調べてください。より多くのトラフィック、より多くの車線。

トラフィックを複数のエンティティに分割することで、Service Bus から効果的に任意のフロー レートを得ることができます。Service Bus は、信頼性に関する多くの保証を提供します。たとえば、一度取得したメッセージを失わない、ギャップのないシーケンス番号を割り当てる、単一のトピックなどの個々のエンティティにスループットに影響を与えるなどです。これは、1 時間あたり X 台の車を処理できる高速道路の車線とまったく同じです。レーンを増やします。

于 2012-08-30T00:19:07.017 に答える
8

これらの返信以来、Microsoft は大量の新機能をリリースしました。

  1. Azure Auto-Scaleは、キュー内のメッセージ (または CPU 負荷) を監視し、インスタンスを開始または停止して、そのターゲットを維持できます。
  2. Service Bus は、パーティション化されたキュー(& トピック) を導入しました。これにより、複数のキューを介してメッセージを送信できますが、API には単一のキューのように見えます。Queue のスループットを劇的に向上させます。

それを行う前に、試してみることをお勧めします:-

  • キューへの非同期およびバッチ書き込み。
  • Reads の Prefetch パラメータを変更します。
  • また、Receive.OnMessage() を調べて、メッセージが利用可能なミリ秒で確実に取得されるようにします。

これにより、パフォーマンスが 1 秒あたり最大 5 件のメッセージから、1 秒あたり 100 件または 1,000 件に改善されます。

于 2014-03-17T02:44:59.973 に答える
3

Service Busには「容量と割り当て」という制限があります。これらの非常に優れた概要については、この記事を確認してください:https ://docs.microsoft.com/en-gb/azure/service-bus-messaging/service-bus- azure-and-service-bus-queues-compared-contrasted

Azure Service Busの境界を押し上げるユースケースがある場合は、最寄りのMSFTスペシャリストに連絡することをお勧めします。MSFTには、これらの境界を大規模に設計および押し上げるのに役立つ専用のチームがレドモンド(世界中)にあります。これは、Windows Azure CAT(カスタマーアドバイザリーチーム)です。彼らの目標は実際の顧客の問題を解決することであり、あなたがそれを持っているかもしれないように思えます...

特定のシナリオに基づいて上記の質問に対するすべての回答に到達するには、パフォーマンスと負荷テストを行う必要があります。

Azure CATチームには、Service Bus(Azure全般)を使用した容量と負荷のテストに関する豊富なメトリックがあります。これらは常に公開されているわけではないため、可能であればもう一度連絡してください...

于 2012-08-29T09:18:57.983 に答える
1

それだけの数のリクエストを処理できる場合は、トピックの最大サイズに達しないような方法でメッセージを受信するようにする必要があります。Azureでワーカーロールの複数のインスタンスを使用して特定のサブスクリプションをリッスンできるため、最大サイズに近づくことなくメッセージをより高速に処理できます。

于 2012-08-29T21:35:29.063 に答える