2

私はリアルタイム アプリケーションに取り組んでおり、Azure で構築しています。

アイデアは、すべてのユーザーが自分自身について何かを報告し、他のすべてのユーザーがそれをすぐに見る必要があるということです (新しい情報を得るために、1 秒ごとにサービスをポーリングします)。

今のところ私のアプローチは、WCF REST サービスに Web ロールを使用することでした。ここでは、ワーカー ロールなしで DB (SQL Azure) へのすべての書き込みを行っているため、すぐに書き込まれます。

Worker Role と Queue を使用して書き込みを行うと、はるかにスケーラブルになる可能性がありますが、サービスのリアルタイム側に干渉する可能性があると考えるようになりました。(worker ロールはキューからすぐにジョブを取得しない場合があります)

本当ですか?この問題についてどうすればよいですか?

ありがとう

4

2 に答える 2

1

キューによって待ち時間が少し増えることは事実ですが、大量のメッセージを処理するためにワーカーロールインスタンスの数をスケールアウトすることができます。

一度に複数のメッセージを取得することで、キューの読み取りを最適化することもできます。単一のキューには500TPSのスケーラビリティ目標があるため、これにより、読み取りで1秒あたり500メッセージをはるかに超えることができます。

最新のユーザー更新をバッファリングするためにキャッシュを調べる場合があるため、ポーリングが発生すると、サービスはSQLAzureではなくキャッシュから読み取ります。情報量が増えると、それが役立つかもしれません。

于 2011-12-13T10:16:28.457 に答える
0

SignalR を見ることができます。すぐに使用できるファーム シナリオはサポートされていませんが、内部エンドポイント呼び出しを使用してすべてのインスタンスを更新するか、Azure Service Bus を使用するか、 AppFabric キャッシュ。このようにして、プル シナリオではなくプッシュ シナリオを取得するため、更新の可能性についてエンドポイントをポーリングする必要はありません。

于 2011-12-14T00:27:53.030 に答える