回答

3

您不能擁有組合的web和worker角色實例。它可以是一個或另一個。但是,可以讓Web角色執行後臺處理,因此可以承擔後臺工作負載。

參見這太問題的一對夫婦的選擇

Azure WebRole Scheduled Task Every Morning

談到有關每天早晨運行的任務。顯然,您可以更頻繁地執行此操作,以適合您的應用程序。

請注意這一點的可擴展性限制。一旦你的流量增加了,將它分解成獨立的網絡和工作者角色是有意義的。實際上,即使您的後臺工作負載很輕,您仍然可以從一開始就選擇單獨的體系結構並將XS實例用於後臺處理更有意義。

+0

謝謝。另有一篇文章詳細說明了這一點。 http://stackoverflow.com/questions/3582598/how-many-roles-can-you-have-per-azure-instance?rq=1 – 2013-03-04 23:08:07

2

從技術上講,你不能有兩種類型的角色。然而,Web角色與工作者角色相同,只是配置了IIS。因此,您可以將它們合併爲一個Web角色 - IIS將在單獨的進程中運行,角色入口點Run()將爲「後端」處理運行一些無限循環。見this similar question

這將使縮放更加複雜。獨立角色的整體思路(記住,不僅可以有一個Web角色和一個輔助角色,例如,如果適合您的解決方案,您可以擁有四個輔助角色和兩個Web角色)可以分別對其進行擴展。

它看起來像一旦你將兩個角色合併成一個角色,你不再可以精細地縮放它們。這在大多數情況下並非如此 - 您只需更改指標即可。

例如,您希望爲每分鐘的每千個HTTP請求運行一個Web角色實例,爲後端隊列中的每十個請求運行一個輔助角色實例。好吧,這意味着每個HTTP請求需要與後端隊列中的10個項目相同的處理能力。因此,您制定了一個新的度量標準,它同時採用兩個參數並推導出多個實例。就像你每分鐘有五千個請求和後端隊列中的二十個請求 - 你需要七個合併角色的實例。

這不適用於所有應用程序,但其中大多數將使用這種方法就好了。其中的好處是,當任何一個角色處於空閒狀態時都會避免出現情況,因爲當前負載會轉到另一個角色。

相關問題