2

質問があります。

MicrosoftのAzureQueueは、この投稿で提案されているように多くのメッセージをサポートするように設計されていると思いました。100TBのメッセージ(アカウントの最大容量)を保存できると読みました。したがって、すべてのワーカーロールに使用できるキューは1つだけです。

しかし、ワーカーロールインスタンスごとのキューのみを示す記事を見つけました。

記事の残りの部分は深刻だと思うので、これについてどう思うかわかりません。

場合によっては、複数のキューの方が優れていますか?

4

1 に答える 1

4

ストレージを検討している場合、キューが1つであろうと100であろうと関係ありませんが、制限は同じです。ただし、パフォーマンスへの影響を知っておく必要があります。ストレージアカウントでは、パフォーマンスはパーティションに基づいています(たとえば、ファブリックコントローラーはホットパーティションにより多くのリソースを割り当てることができます)。

Windows Azureストレージキューを使用している場合、1つのキューは1つのパーティションです。そして、これにはいくつかのスカラビリティターゲットが付属しています。キューの場合、これは1つのキューが500メッセージ/秒を処理できる必要があることを意味します。詳細については、こちらをご覧ください:WindowsAzureストレージの抽象化とそのスケーラビリティのターゲット

これは、アーキテクチャを定義する際の重要な要素であり、キューを何に使用するかによって異なります。1秒あたり500メッセージに達するとは思わない場合は、すべてのワーカーに対して1つのキューで問題ないはずです。ただし、この制限を超えると思われる場合(すぐには発生しない場合でも)、これを処理するための適切なアーキテクチャを設定する必要があります。そして、これは単に1人のワーカーに対して1つのキューを意味するのではありません。さまざまなプロセスのさまざまなキューについて考え、サブプロセスでプロセスを分割し、サブプロセスごとにキューを使用し、ワーカーにさまざまなキューをポーリングさせ、ラウンドロビンシステムについて考えます...

また、次のような既存の実装を検討することも検討してください。 パーティション化されたCloudQueue-スケーラビリティの制限のないAzureStorageQueue。また、カスタマーアドバイザリーチームのWebサイトを参照することをお勧めします。キューのスカラビリティに関する興味深い記事が多数あります(最初に参照した記事はCAT Webサイトからのものです)。

于 2012-06-27T09:36:35.817 に答える