如何將Windows Azure設置爲多個工作者角色正在同一實例上運行?可能嗎?同一實例上的多個工作者角色
7
A
回答
8
我想你誤解了工人角色是什麼。 Web和Worker角色是Window Server VM,主要區別在於Web角色具有IIS運行。你可能有多個實例。
真的沒有「同一個實例中的多個工作者角色」這樣的事情。將工作角色看作虛擬機的模板:啓動腳本和事件處理代碼來處理啓動和關閉等消息,以及您在虛擬機中打包並運行的代碼。
從OnStart()
或Run()
,你可以運行任何你想要的代碼。啓動多個線程,運行服務器代碼(如Tomcat)等。無論您有哪些代碼都會在每個實例中運行。在擴展到多個實例時,在每個實例上使用相同的VM模板。
請參閱this answer以及我提供的更多細節。
5
像大衛在他的回答中提到的,你可以啓動多個線程。我的一位客戶通過使用ThreadedRoleEntryPoint類來做到這一點。
這個類允許你使用多個工作角色入口點類(甚至從多個組件),並在相同的角色運行它們:
public override void Run()
{
Trace.TraceInformation("WebRole::Run begin", "Information");
List<WorkerEntryPoint> workers = new List<WorkerEntryPoint>();
workers.Add(new Worker1());
workers.Add(new Worker2());
base.Run(workers.ToArray());
Trace.TraceInformation("WebRole::Run end", "Information");
}
這裏的好處是,你可以從小處着手,並運行所有工作角色(實際上不是工作者角色,但讓我們稱他們爲流程或工作者)在一個角色中(您實際部署的角色)。
然後,當您的業務開始增長時,您可以開始使用專用角色,這意味着每個工作人員角色至少會運行一個實例。當這種情況發生時,由於傳遞給ThreadedRoleEntryPoint的Worker繼承自WorkerEntryPoint,這看起來很像RoleEntryPoint類,所以對代碼的影響將很小。
-2
相關問題
- 1. 如何跨多個實例天青工作者角色使用同步方法?
- 2. Windows Azure中同一實例上的多個角色
- 3. 在Azure Web角色/工作者角色的多個實例上安裝Windows Server AppFabric緩存
- 4. 在單個實例中部署Web角色和工作者角色
- 5. Windows Azure工作者角色實例是整個虛擬機嗎?
- 6. 2個實例上的Azure工作者角色套接字偵聽器
- 7. 從工作角色實例化工作角色
- 8. AZURE:獲取工作者角色實例的IP地址
- 9. 如何在只有一個實例的單個雲服務中託管工作者角色和Web角色?
- 10. Shared DataContract工作者角色/ Web角色
- 11. 如何執行每實例Azure工作者角色配置?
- 12. PHP上的Azure Cloud Service Web角色+工作者示例
- 13. Azure隊列工作者角色多線程示例
- 14. 多個角色不工作
- 15. 角v4和Swiper:同一頁上的Swiper的多個實例
- 16. 一個天青工人角色的多個實例有多少隊列?
- 17. 添加一個角色的opsworks實例
- 18. Windows Azure - 我可以在同一個虛擬機上運行Web角色和工作者角色嗎?
- 19. 點擊同一個類的多個實例不工作
- 20. 工作者角色與Web作業
- 21. 調用一個簡單的工作者角色
- 22. 在azure工作者角色中的Windows.winmd
- 23. 關於Azure工作者角色的MongoDB
- 24. 與Windows Azure中的網絡/工作者角色和實例混淆。
- 25. 增加/減少工作者角色實例的數量在天青
- 26. SQL Azure多實例Web角色: - 會話在本地計算機上不工作
- 27. 工作者角色與異步控制器的Web角色
- 28. 工作者角色和Web角色之間的Azure通信
- 29. 從Web角色應用配置到工人的角色實例
- 30. 在MVC(ASP)中的相同數據上實現多個角色