1

我想创建一个在内存中保存大量易失性数据的应用程序。当主机关闭或维护时,只需要保留一小部分数据。中断应该很少见,大部分时间都需要访问内存中的数据,但很少有服务的重新安排是可以忍受的。

如果我一直在为服务器开发,我会创建一个 WindowsService,它会在机器启动时可靠地运行,并且我会在 OnStop() 方法中保留一小部分数据。

我正在考虑将整个事情转移到云端。问题是,从这个角度来看,工作者角色是否类似于 Windows 服务?它是在大部分时间运行但很少发生中断,还是不时回收/重新启动或在空闲时?

4

1 回答 1

1

与 Windows 服务一样,Worker 角色用于处理后台任务。但是,您需要记住的一件事是,您的工人角色可能随时下降。这可能是因为硬件故障或软件更新。因此,您不能总是认为这是高度可用的。这就是 Windows Azure 建议部署应用程序的多个实例的原因。

您可以做的是让您的工作角色的多个实例运行,并且所有实例都共享一个公共缓存,您将在其中放置易失性数据。请查看 Windows Azure Caching ( http://msdn.microsoft.com/en-us/library/windowsazure/gg278356.aspx ),您可以在其中将 VM(即实例)的一些内存用于缓存目的,或者有一个专用于缓存的完整 VM。这样,您就可以在工作角色之外的某个地方拥有易失性数据,从而使其可用于所有实例。

于 2013-02-05T16:17:43.280 回答