刷新所有 Azure 实例中的数据的最佳方法是什么?
我有多个实例,每个实例都运行相同的 Web 角色。角色启动时,数据从 Blob 存储读取到本地存储。网站使用的数据会间歇性地有新的更新。我希望能够以编程方式通知每个实例,以将更新的数据从 blob 存储获取到实例的本地存储中,以便每个实例都得到刷新。
一种想法是编写一个自定义客户端程序来调用 Web 角色上的 Web 服务,并传入要更新的角色 ID。如果端点是角色 ID,则实例会自行刷新。如果没有,客户端会再次尝试,直到所有实例报告它们已刷新。这是一个好方法还是 Azure 中有内置方法可以实现此目的?
我考虑过使用一个单独的线程来间歇性地检查刷新标志,尽管我担心我的实例会变得不同步。
数据量并不大,所以我可以将其放入 Azure 缓存中。但是,我担心使用缓存的网络延迟。 Azure 缓存可以很好地处理这个问题吗?
另一种想法是依次重新启动实例(在角色启动时执行刷新操作)。
我认为一种可能的方法是在配置设置中使用设置(例如时间戳) - 然后您可以以编程方式更新配置并使用 RoleEnvironment.Changing 事件来监视所有实例上的更改 -http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.having.aspx http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.changing.aspx
如果执行此操作,请确保在所有角色中拦截该事件 - 并确保解析更改(查找 Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironmentConfigurationSettingChange)并向 Cancel 参数返回 false 以防止实例重新启动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)