将消息发送到Azure网站实例

将消息发送到Azure网站实例,azure,web,Azure,Web,我们现在正在评估Azure,我真的很喜欢Azure网站,特别是因为它的部署非常简单和快速,这对我们目前进行大量测试的情况很有帮助 我们有一些内存缓存,用于存储每个请求经常访问的信息,如文本字符串,用于多语言支持和由站点管理员编辑的配置设置。我希望有一个系统,其中网站的每个实例都有一个缓存数据的副本,但当管理员更改某些设置时,我需要向所有实例发送缓存失效的刷新事件。我想azure服务总线非常适合发布-订阅模式,但我不想只为发送一些消息而为每个实例支付3欧元 是否有一个选项可以为每个实例打开一个单独

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

我们有一些内存缓存,用于存储每个请求经常访问的信息,如文本字符串,用于多语言支持和由站点管理员编辑的配置设置。我希望有一个系统,其中网站的每个实例都有一个缓存数据的副本,但当管理员更改某些设置时,我需要向所有实例发送缓存失效的刷新事件。我想azure服务总线非常适合发布-订阅模式,但我不想只为发送一些消息而为每个实例支付3欧元


是否有一个选项可以为每个实例打开一个单独的所有端点,例如,我可以在其中打开一个wcf服务?

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

您可以通过一个主题和几个订阅来查看服务总线,这确实是一个选项,但正如您所指出的,它确实需要一些成本。我很感兴趣的是,你是从哪里计算出这个数额的。代理消息按每条消息收费(包括“空请求”)。如果你有一个实例在一个月内每分钟检查一次,那么它只有大约43000个调用。一美元可以打100万个电话。通过服务总线在托管客户机中的长轮询,您最终得到的“空”调用少于标准轮询

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

最后,还有一个网站可以使用的WindowsAzure缓存服务(预览版),但这需要额外的成本,而且,如果您真的要缓存所有实例上的确切数据,效率也不会那么高。它将使您能够直接处理缓存服务,而不依赖于正在使用它的实例,允许您根据需要一次性重置缓存服务


就我个人而言,我建议再看看服务总线。

谢谢你的回答,我在考虑每秒检查一次,即每个实例每月大约有250万条消息=2.5欧元,但这可能太多了,我可以将其减少到每分钟10次或每10秒,这意味着25%(+/-)。我会仔细看看服务车。我读到一些关于web角色的每个实例都有一个打开单个实例的选项,所以我希望这对网站也是可能的。顺便说一句:感谢你提供的长轮询提示,这对我来说似乎很完美。云服务有一个InstanceInputEndpoint,你是对的。据我所知,这不适用于网站。