1

我们在 Azure 中有一个网站,我们想缓存网站上的内容。将更新内容的应用程序将在 Azure 之外。我们让这个场景与共享缓存一起工作。然而,共享缓存被认为是一项遗留功能,因此我们想看看替代解决方案,包括使用角色内缓存。缓存的内容非常小,不应超过 1 MB,将被 C# 代码使用。

我们可以在 web 角色中使用 co-located 缓存,也可以使用 worker 角色使用专用缓存。

我们使用角色内缓存时遇到的问题是:

  • 如何从外部应用程序更新协同定位缓存?

  • 如果有办法从外部应用程序更新共存缓存,缓存通知可用于使所有共存缓存节点无效,对吗?

  • 我们现在使用超小型 Web 角色实例 - 我们需要升级到小型/中型实例吗?

  • 专用缓存是否更适合我们的场景?

    提前致谢。

4

1 回答 1

5

在进行了大量研究并在西蒙在他已经提到的 SO 线程中的回复的指导下,以下是我的回复:

  • 问:如何从外部应用程序更新 co-located 缓存?
  • 答:我会在您的 Webrole 上公开一个公共端点,该端点会清除缓存。我会从您的外部应用程序调用该端点(该端点可以是服务、REST URL 等)。或者,将消息放入队列并让您的 Webroles 监视该队列并在他们收到队列中的消息时从缓存中清除该项目。无论哪种方式,您都在实现自己的通知机制

  • 问:如果有办法从外部应用程序更新共存缓存,缓存通知可用于使所有共存缓存节点失效,对吗?

  • 答:我不相信。位于同一位置的缓存的端点是严格内部的。

  • 问:我们现在使用超小型 Web 角色实例 - 我们需要升级到小型/中型实例吗?

  • 答:是的。我相信小型实例及更高版本支持托管缓存。您需要尝试一下,看看您获得了多少内存与剩余多少内存,以及这对您的主应用程序是否有用

  • 问:专用缓存是否更适合我们的场景?

  • 答:专用缓存与托管缓存实际上与负载有关。您的缓存和应用服务器上是否有足够的负载来证明将缓存移到单独的角色中是合理的?查看这篇文章以获得 Microsoft 的建议:http: //msdn.microsoft.com/en-us/library/windowsazure/hh914129.aspx
于 2013-03-13T02:38:14.917 回答