私のアプリケーションは、Webロールの複数のインスタンスを介して、毎秒1000以上のリクエスト/トランザクションを受信します。これらの役割は、複数のストレージテーブルにまたがるすべてのトランザクションのレコードを書き込みます(ランダムに、Azureの500トランザクション/秒の制限を分散します)。ここで、複数のワーカーロールを使用してこのデータを処理/集約し、結果をSQLデータベースに書き込むための信頼できる方法が必要です。別名、これは水平方向にスケーリングする必要があります。
後処理でストレージテーブル内のすべてのトランザクションを保持/アーカイブする必要があるので、キュー用のテーブルのセットを1つ用意し、それらが処理されたときにアーカイブテーブルに移動するか、おそらく次の方法があります。確かではありませんが、単一のテーブルでこれを行います。
これらのキュー内の現在のワークロードを作業ロール全体に分散するメカニズムに関して、何をお勧めしますか?明らかに、各ロールは他のすべてのロールが何に取り組んでいるかを認識している必要があるため、未請求のトランザクションでのみ機能します。各ロールは、単一の作業負荷としてキューから1000レコードを取得し、複数のワーカーロールが同じキューで動作する可能性があると思います。
ワーカーロールの「状態」をキャッシュ(おそらくSQLサーバー)に保持する必要があります。
あなたの提案は大歓迎です。