我正準備將我的網站,數據庫和後臺調度程序移至Azure平臺。我們是否可以在單個Azure雲服務實例中擁有工作角色和Web角色
我必須使用雲服務和網絡&工作角色。現在我的問題是,我是否需要爲每種類型的角色分開實例,或者一個實例能夠託管多種類型的角色?
我正準備將我的網站,數據庫和後臺調度程序移至Azure平臺。我們是否可以在單個Azure雲服務實例中擁有工作角色和Web角色
我必須使用雲服務和網絡&工作角色。現在我的問題是,我是否需要爲每種類型的角色分開實例,或者一個實例能夠託管多種類型的角色?
您不能擁有組合的web和worker角色實例。它可以是一個或另一個。但是,可以讓Web角色執行後臺處理,因此可以承擔後臺工作負載。
參見這太問題的一對夫婦的選擇
Azure WebRole Scheduled Task Every Morning
談到有關每天早晨運行的任務。顯然,您可以更頻繁地執行此操作,以適合您的應用程序。
請注意這一點的可擴展性限制。一旦你的流量增加了,將它分解成獨立的網絡和工作者角色是有意義的。實際上,即使您的後臺工作負載很輕,您仍然可以從一開始就選擇單獨的體系結構並將XS實例用於後臺處理更有意義。
謝謝。另有一篇文章詳細說明了這一點。 http://stackoverflow.com/questions/3582598/how-many-roles-can-you-have-per-azure-instance?rq=1 – 2013-03-04 23:08:07
從技術上講,你不能有兩種類型的角色。然而,Web角色與工作者角色相同,只是配置了IIS。因此,您可以將它們合併爲一個Web角色 - IIS將在單獨的進程中運行,角色入口點Run()
將爲「後端」處理運行一些無限循環。見this similar question。
這將使縮放更加複雜。獨立角色的整體思路(記住,不僅可以有一個Web角色和一個輔助角色,例如,如果適合您的解決方案,您可以擁有四個輔助角色和兩個Web角色)可以分別對其進行擴展。
它看起來像一旦你將兩個角色合併成一個角色,你不再可以精細地縮放它們。這在大多數情況下並非如此 - 您只需更改指標即可。
例如,您希望爲每分鐘的每千個HTTP請求運行一個Web角色實例,爲後端隊列中的每十個請求運行一個輔助角色實例。好吧,這意味着每個HTTP請求需要與後端隊列中的10個項目相同的處理能力。因此,您制定了一個新的度量標準,它同時採用兩個參數並推導出多個實例。就像你每分鐘有五千個請求和後端隊列中的二十個請求 - 你需要七個合併角色的實例。
這不適用於所有應用程序,但其中大多數將使用這種方法就好了。其中的好處是,當任何一個角色處於空閒狀態時都會避免出現情況,因爲當前負載會轉到另一個角色。
這裏有一個類似的問題http://stackoverflow.com/q/6266560/57428 – sharptooth 2013-03-05 06:50:38