我在Azure中托管了一个云服务。由于它使用的数据量,我们有一个每小时的过程,告诉服务将数据缓存到内存中。为了更新缓存,我们使用一个名为" RefreshData"的公开方法。我们在本地服务器上的计划任务上调用。
最近我更新了云服务以在2个实例上运行(这意味着它在1个虚拟机上运行,现在运行在2个虚拟机上)。
我现在注意到的是,我们的数据不再自动刷新到最新数据。这里似乎发生了什么:
因此,如果我有一个响应IP的云服务,但有2个实例在运行"在它后面"对于单独的IP,如何调用此请求并确保两者都根据需要进行更新?
PS - 我知道Azure有那个"负载均衡器"工具现在可用,如果需要我非常适合使用一个实例作为我的主要工具并让第二个实例作为故障转移,如果这是一个可用的选项吗?
答案 0 :(得分:3)
您当前的解决方案是过度工作的大时间。您有一个外部服务只是为了触发Azure服务中的定期事件。如果您的ISP出现故障并且暂时无法从一个连接到另一个连接怎么办?
一个更好的方法是每个实例向自己发送一个HTTP请求 - 有效http://localhost/service.svc这将消除对外部服务的依赖,并解决通过负载均衡器并到达每个实例的问题
我假设你有一个网络角色。根据{{3}}的不同,你可以从那里开始单独的线程,或者只是在里面运行Sleep()
的无限循环,然后从那里发送那些HTTP请求。
答案 1 :(得分:2)
您有几个选择: