【发布时间】:2015-06-10 17:51:46
【问题描述】:
我在 Azure 中托管了一项云服务。由于它使用的数据量,我们有一个每小时的进程,告诉服务将数据缓存到内存中。为了更新缓存,我们使用了一个名为“RefreshData”的公开方法,我们在本地服务器上的计划任务上调用该方法。
最近我更新了云服务以在 2 个实例上运行(这意味着它在 1 个虚拟机上运行,现在在 2 个虚拟机上运行)。
我现在注意到的是,我们的数据不再自动刷新为最新数据。这里似乎发生的是:
- 运行可执行命令的计划任务在本地服务器上的整点触发
- exe 调用http://myCloudService.cloudapp.net/service.svc,得到响应,并启动 RefreshData 方法
- 收到刷新请求的实例是“随机的”,这意味着 2 个实例中只有 1 个被告知刷新数据。因此,有时使用我们服务的用户会获取最新的数据,有时可能长达几个小时。
因此,如果我有一个响应 IP 的云服务,但有 2 个实例在其“后面”运行各个 IP,我如何调用此请求并确保两者都根据需要进行更新?
PS - 我知道 Azure 现在可以使用“负载平衡器”工具,如果需要的话,我非常乐意使用一个实例作为我的主实例,并让第二个实例作为故障转移,如果这是一个合理的选项吗?
【问题讨论】:
标签: wcf azure azure-cloud-services