Mis*_*ook 6 azure azure-storage
刷新所有Azure实例中的数据的最佳方法是什么?
我有几个实例,每个实例都运行相同的Web角色.在角色启动时,数据从blob存储读取到本地存储.间歇性地,将对网站使用的数据进行新的更新.我希望能够以编程方式通知每个实例,以便将blob存储中的更新数据导入实例的本地存储,以便每个实例都刷新.
一个想法是编写一个自定义客户端程序来调用Web角色上的Web服务,并传入角色ID进行更新.如果端点是角色ID,则实例将刷新自身.如果不是,则客户端再次尝试,直到所有实例报告它们都被刷新.这是一个很好的方法还是在Azure中有内置方法来执行此操作?
我考虑过一个单独的线程,间歇性地检查刷新标志,但我担心我的实例会变得不同步.
没有大量数据,所以我可以把它放在Azure缓存中.但是,我担心使用缓存的网络延迟.Azure缓存是否能很好地处理这个问题?
另一个想法是一个接一个地重启实例(在角色启动时执行刷新操作).
我认为一种可能的方法是在配置设置中使用设置(例如时间戳) - 然后您可以以编程方式更新配置并使用RoleEnvironment.Changing事件来监视所有实例的更改 - http ://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.changing.aspx
如果这样做,请确保在所有角色中拦截事件 - 并确保解析更改(查找Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironmentConfigurationSettingChange)并将false返回到Cancel参数以防止重新启动实例.
除了斯图尔特的答案之外,让我谈谈您提出的技术:
Stuart 关于使用配置设置的建议是一个很好的建议。只需确保您可以在不破坏应用程序的情况下更新文件。如果不能安全地完成此操作,请不要处理更改事件 - 只是让角色实例回收。
归档时间: |
|
查看次数: |
1100 次 |
最近记录: |