0

複数のスレッドを使用してAzureキューを処理するX個のワーカーロールがあります。これらのキューを流れるデータはかなり単純ですが(このClient_IDの場合、アクションA、B、またはCがあり、トランザクションごとに1つのアクションがあります)、毎秒5000トランザクションを超える大量のデータがあります。次に、これらをClient_ID、タイプAの43のトランザクション、Bの場合は20、Cの場合は11を示す形式で集約する必要があります。基本的にそれらを合計します。ただし、キュー上のGetMessagesは、キューから32個のメッセージしか取得できません。

私の質問は-1000と言うまでその時点で32を取得し続け、次にそれらを実行して合計する必要がありますか?または、リスト、キュー、またはキャッシュに合計を保持しますか?

私のシナリオに最適なアグリゲーターメカニズムとして、これらのキューから常にメッセージを取得する5つのスレッドを持つ10のワーカーロールが存在する可能性があることを知って、何をお勧めしますか?

4

1 に答える 1

0

まず、Azure でのスケーラブルなカウンターの構築に関する、常に人気のあるこの記事と関連するCloud Cover Episodeを読むことをお勧めします。

要するに、各ワーカーロールはスレッドセーフカウンターを保持しているということです(あなたの場合は、クライアントとメッセージタイプごとに)。スレッドは、各メッセージを処理するときにこれらのカウンターを更新します。バックグラウンド スレッドは、その値を基盤となるストレージに定期的に書き込みます。

于 2013-02-27T19:42:42.833 に答える