2013-02-05 103 views
1

我想創建一個應用程序,在內存中保存大量的易失性數據。當主機關機或維護時,只有少部分數據需要保存。中斷應該是罕見的,這在內存中的數據需要在大多數時間可用,但罕見的服務休息是可以忍受的。Azure Worker角色數據的波動性

如果我一直在開發一個服務器,我會創建一個WindowsService,它在機器啓動時可靠地運行,並且我會在OnStop()方法中保留一部分數據。

我正在考慮將這件事整理到雲端。問題是,如果從這個角度來看,工作者角色與Windows服務相似?它是否在大多數情況下都會發生罕見的中斷,或者它是否經常回收/重新啓動或閒置?

回答

1

與Windows服務一樣,Worker角色用於處理後臺任務。但是有一件事你需要記住,你的工作者角色可以隨時停止。這可能是因爲硬件故障或軟件更新。因此你不能總是認爲這是高度可用的。這就是Windows Azure建議部署應用程序的多個實例的原因。

您可以做的是讓您的工作者角色的多個實例正在運行,並且他們都共享一個公共緩存,您可以在其中放置易失性數據。請查看Windows Azure緩存(http://msdn.microsoft.com/en-us/library/windowsazure/gg278356.aspx),您可以在其中專門爲某個虛擬機(即一個實例)提供某些內存用於緩存目的,或者擁有專用於緩存的完整虛擬機。這樣你就可以將你的易失性數據存放在工作者角色之外的某個地方,從而使其可用於所有實例。

相關問題