由拉夫很好的答案,但我想添加更多的細節,因爲我覺得有可能會對網絡和工作者角色產生一些困惑。每個角色是一組虛擬機的定義,這些虛擬機執行的操作與您構建的相同(您不需要處理操作系統 - 只需啓動應用程序,Azure負責虛擬機本身)。
當Cloud Service運行時,每個角色類型至少有一個實例。所以在你的情況下,運行一個web角色和worker角色,你至少會有兩個虛擬機在運行。
如果您選擇將Web角色擴展爲3個實例,然後決定將其撥回2個實例,則無法選擇要關閉哪一個;這由Azure的結構來處理。請記住,角色的每個實例都運行相同的代碼,並且Azure將流量負載平衡到角色實例(通過您定義的外部端點)。唯一需要擔心的是關機。你有約。 5分鐘清理所有正在運行的進程(並且由於您收到Stopping()
事件,因此您可以在關機期間輕鬆從負載平衡器中取出特定實例)。
您無法關閉雲服務中的整個角色(例如,角色的所有實例)(因此......您無法在保持Web角色實例運行的同時取消您的輔助角色實例)。如果這是一項要求,那麼您始終可以考慮在一個Cloud Service中運行Web角色,並在另一個Cloud Service中運行輔助角色。如果他們使用隊列傳遞數據,那麼所有內容仍然可以像以前一樣工作。如果Web角色實例需要直接訪問工作者角色實例,則可以將兩個Cloud Services都放入虛擬網絡中。
還有一件事要考慮:你不要必須有不同的角色。如果成本是一個因素,你可以在你的web角色中運行你所有的代碼。在OnStart()
期間花費很少的工作來啓動Web角色中的其他進程/線程 - 記住角色實例是完整的Windows Server虛擬機;運行任何你想要的。對於單個角色定義,縮放比較粗糙:所有內容都縮放在一起。使用不同的角色,您可以微調您的縮放比例(在構建更大的系統時更重要)。
感謝您進行更多的澄清,但在閱讀後,我的印象並不清楚我的案例圖片,因此這裏是我的案例的一些可視化,如下所示:當我們點擊「SampleVM」時,在Azure Portal中,它打開了一個頁面,其中包含多個選項卡,例如儀表板,監視器,配置等,並且當我點擊它時顯示一個新框架,其中在頂部相同的標籤頁上顯示一個新框架, 2 ... – user2881983
...第一個插槽是Production&另一個是Staging&當我點擊暫存時,它會顯示一個表,其中2個節點/虛擬機/實例顯示,狀態顯示在那裏運行,這只是可視化我的情況照片.....現在我能夠通過powershell命令啓動/停止「SampleVM」,因爲這兩個運行實例/節點/虛擬機/角色也停止....我的概率是我只想要st運行/啓動單個角色/虛擬機/節點/實例,無論我們稱之爲在臨時插槽下創建的那些節點...下面的 – user2881983
是我可以停止/啓動雲服務的命令「Stop-AzureService -ServiceName」SampleVM「 -Slot Staging「......現在請大家指出一些問題並提供一些幫助或建議如何停止/啓動特定雲服務名稱」SampleVM「中的特定實例。 – user2881983