2012-02-10 20 views
6

同じインスタンスでWebロールとワーカーロールを実行できますか、別の2つのホスティングインスタンスを取得して、それ以外の場合は2倍の金額を支払わなければなりませんか?Azureのロールとインスタンス

私はAzureでホストしたいWCF Web APIを持っています。私はAzure Storageの待ち行列を聞くWorker Roleも持っています。メッセージがキューに追加されるたびに、メッセージが取得され、メッセージに応じて小さなタスクが実行されます。

私は同じインスタンスでこれら2つを実行できるかどうかは不思議でした。

答えて

3

「ワーカーロール」と「Webロール」は、「IISを実行しているWindows Server 2008」と「IISを実行していないWindows Server 2008」の単なるテンプレートです。重要な点は、「役割」はWindows Server仮想マシンの定義であるということです。各「ロール」には、1つ以上のインスタンスがあります。

Windows Azureでは、両方のロールタイプに起動スクリプトまたはOnStart()ハンドラのいずれかでソフトウェアをインストールしたり、レジストリ設定を変更したりすることができ、両方ともRun()メソッドでコードを実行できます。

WebロールでWCF Webサービスを実行してから、同じ役割のRun()メソッドで、WCF Webサービスによって送信されたキューメッセージを待機するプロセスを開始できます。新しい役割を持つ必要はありません。

今すぐ:大量の状況になったら、コードを別々のロールに分割して、(VMサイズとVM量の両方で)独自にスケーリングすることができます。

私はこのhereについて別の回答を掲載しました。

0

あなたの要件に完全に依存します。 hereのように外部エンドポイントを公開し、WCFサービスを公開するWorker Roleを持つことができます。また、WCFサービスであるWebロールを持ち、キューをチェックするバックグラウンドスレッドをスピンアップすることもできます。ワーラーはメッセージで何をしていますか?どのようなプロセスが行われますか?それもソリューションに影響を与えます。

重要な点は、WCFサービスとキュー取得タスク間のスケーリング要件が同じかどうかということです。彼らが単一の役割であれば、始めるのに十分なはずです。

関連する問題