1

あなたの助けは、Windows azure についての理解を深めてくれます。前もって感謝します。

時間のかかる操作を行っているメソッド (worker ロールの Run() メソッド) のような worker ロールを理解しています。これにより、トラフィックが急増した場合に処理を高速化するために、この worker ロールのインスタンスを複数持つことができます。

1)次のようなこと以上のことを行うワーカーロールを持つことはできますか? - PDFを作成するメソッド。- チャートを作成するメソッド; -一部の HTML を解析するメソッド。-画像を処理するメソッド

4 つのワーカー ロール (上記の機能ごとに 1 つの RUN() メソッド) を使用してこれらすべてを簡単に実行できますが、これは非常にコストがかかります。この 4 つのことを同じワーカー ロールのメソッドとして配置できますか?

2) ワーカー ロールで WCF サービスをホストすることの欠点は何ですか?

3) キューの代わりに WCF を介して同じ Azure ソリューション内のインスタンス間で通信することの欠点は何ですか? これは遅いですか?

4

2 に答える 2

4

ワーカー ロールへのインターフェイスは単純です...戻り値のない Run() メソッドを実装し、それを呼び出します。そこで行うことは何でもかまいません...さまざまなことを行う 100 個のスレッドをスピンアップしたり、Process.Start() を使用して別のプロセスを起動したり、Web サーバーを起動したりできます。

ワーカー ロールで WCF をホストすることにデメリットがあるかどうかはわかりません。Web ロールでは、IIS をホストとして使用できます。これは、独自のホストを実行する場合と比較して、サービスのスケーラビリティに役立つ場合があります。

一般的なパターンの 1 つは、worker ロールがキューから作業をプルすることです。キューの利点は、各メッセージが少なくとも 1 回配信されることを保証することです (そのため、作業が失われることはありません)。また、次の作業の準備ができたときに各ワーカーがキューからメッセージをプルできるため、負荷が分散されます。代わりに WCF やその他の同期通信を使用する場合は、作業を分散する方法とエラーから (作業を失わずに) 回復する方法を自分で処理する必要があります。それは確かに可能ですが (実際には、キューへのラウンドトリップよりもおそらく高速です)、信頼性が高くスケーラブルなサービスをこの方法で構築することは困難です。

于 2010-12-24T11:12:58.920 に答える
0

Smarx に追加するだけです - 機能をどのようにスライスするかに注意してください - スピンアップするすべてのワーカー ロールに対して料金が発生します。そのため、ワークフローに特にホットスポットがなく、すでに複数のワーカーを最大容量で実行している場合を除き、より優れています。複数のインスタンスとして実行できる単一のワーカー ロールの作成をオフにします。

于 2010-12-30T00:04:27.493 に答える