我想创建一个在内存中保存大量易失数据的应用程序。当主机关闭或维护时,只需要保留这些数据的一小部分。中断应该是罕见的,这在内存数据中需要大部分时间都可访问,但很少有服务可以承受。
如果我一直在为服务器开发,我会创建一个WindowsService,它在机器启动时可靠地运行,并且我会在OnStop()方法中保留一小部分数据。
我正在考虑将整个事情转移到云端。问题是,从这个角度看,如果工作者角色与Windows服务类似?它是否在大多数情况下都会出现罕见的中断,或者是不时地还是在闲置时再循环/重新启动?
答案 0 :(得分:1)
与Windows Service一样,Worker角色用于处理后台任务。但是有一件事你需要记住,你的工作角色可能随时都会消失。可能是因为硬件故障或软件更新。因此,您不能总是认为这是高度可用的。这就是Windows Azure建议部署应用程序的多个实例的原因。
您可以做的是运行多个工作者角色实例,并且所有这些实例共享一个公共缓存,您可以在其中放置易失性数据。请查看Windows Azure缓存(http://msdn.microsoft.com/en-us/library/windowsazure/gg278356.aspx),您可以将VM的某些内存(即实例)专用于缓存目的,或者拥有专用于缓存的完整VM。这样,您就可以将挥发性数据放在工作者角色之外的某个位置,从而使其可用于所有实例。