将消息发送到Azure网站实例

时间:2014-02-06 08:01:02

标签: azure web

我们现在正在评估Azure,我非常喜欢azure网站,特别是因为部署非常简单快速,这对我们目前进行大量测试的情况很有帮助。

我们有一些内存缓存用于每次请求经常访问的信息,例如由站点管理员编辑的多语言支持和配置设置的文本字符串。我想有一个系统,其中网站的每个实例都有此缓存数据的副本,但是当管理员更改某些设置时,我需要将缓存失效的flush-events发送到所有实例。我想天蓝色的服务总线对于发布 - 订阅模型来说是完美的,但是我不想为每个实例支付3欧元来发送一些消息。

是否有选项可以为每个实例打开一个单独的端点,例如我可以使用wcf-service?

1 个答案:

答案 0 :(得分:1)

这不是在我知道的Windows Azure网站的特定实例上引导请求的好方法。 Web站点的负载均衡器默认使用粘性会话(您可以关闭),但是没有办法强制将请求导入到一个网站实例而不是另一个网站。

你可以看一下你提到的主题和几个订阅服务总线,这确实是一个选项,但正如你所指出的那样它确实需要花费一些成本。我对你在哪里计算金额感兴趣。每条消息收取代理消息(“还包括空请求”)。如果你有一个实例每分钟检查一个月一次,它只有大约43,000个电话。你可以获得100万美元的电话费。通过Service Bus在托管客户端中进行的长轮询,您最终可以获得比标准轮询更少的“空”调用。

另一种选择是简单地使用不同的轮询机制。在这种情况下,您只需要一个指示器,您应该或不应该刷新缓存。您可以将文本文件放在包含缓存当前版本值的BLOB存储中。这可能是你想要的任何东西,数字,指导,无所谓。然后每个实例都会不时检查这个BLOB文件。如果文件中的值与上次看到的值不同,则刷新缓存。然后他们保持新缓存版本值以进行下一次调用。您可以按计划将其设置为WebJob,也可以进行自己的背景轮询。

最后,有一个可供网站使用的Windows Azure缓存服务(预览版),但这会花费额外费用,如果你真的要缓存所有实例上的确切数据,那就不那么有效了。它将使您能够直接处理缓存服务,与使用它的实例无关,允许您一次性按需复位和重置。

我个人建议再看看服务总线。