【发布时间】:2016-01-05 23:39:33
【问题描述】:
我在 Azure 中有两个独立的 Web 应用,一个用于管理内容,另一个用于显示此内容。
目前我正在从管理应用程序向公共应用程序发送 http 请求,以清除各种对象的内存缓存。
这很好用,但不会扩展到多个实例。
因此,我开始研究用于通信的发布/订阅模型的服务总线主题。
我从管理应用程序向主题发送消息没有问题,但我无法弄清楚如何从公共应用程序使用这些消息。
在辅助角色或网络作业中执行此操作的示例很多,但我找不到任何从网络应用程序接收消息的示例。
此外,一旦我解决了这个问题,我将需要为每个实例处理单独的订阅。我的想法是在订阅中使用 WEBSITE_INSTANCE_ID。有没有人这样做过,或者对于多个实例有更好的解决方案吗?
或者,有没有更好的方法来处理分布式缓存清除?
【问题讨论】:
-
为什么管理员应用必须通知公共应用清除缓存?你能做垃圾收集器做的事吗?例如,当缓存达到一定限制时清除缓存(可能是缓存的大小或对象的时间戳)。
-
使用redis之类的东西,在站点之间共享一个公共缓存服务不是更好吗?
-
@Brendan Green - 如果可能的话,我想使用本地内存缓存 - 没有什么比这更快了。
-
我没有对此进行过深入的检查,是否可以通过以下方式实现:a) 使用
System.Runtime.Caching.MemoryCache作为缓存,b) 使用 WebRole 而不是 WebApp,c) 运行服务来自 WebRole“OnStart”入口点的总线消息泵?
标签: .net azure azureservicebus