MemoryCache对象和负载平衡

Fou*_*ree 5 iis-7.5 appfabric asp.net-mvc-3

我正在使用ASP .NET MVC 3编写Web应用程序。我想使用MemoryCache对象,但担心它会导致负载平衡的Web服务器出现问题。当我用google搜索时,看起来该问题已在服务器上解决,即使用AppFabric。如果公司有负载平衡的服务器,是否可以确保它们运行AppFabric或类似的服务器?还是作为开发人员我可以做或应该做的任何事情?

Phi*_*ove 4

首先,对于 ASP.NET,您应该查看ASP.NET Cache而不是 MemoryCache。MemoryCache 是 .NET 4.0 中引入的通用缓存 API,用于在非 Web 应用程序中提供与 ASP.NET 缓存等效的功能。

您说 AppFabric 解决了多个服务器拥有自己的缓存数据实例的问题是正确的,因为它提供了可从所有 Web 服务器访问的单个逻辑缓存。在您将其作为问题的解决方案之前,需要考虑以下几点:

  • 它并不作为 Windows Server 的一部分提供 - 正如您所说,如果您想使用它,您可以将其安装在您的服务器上。当 AppFabric 发布时,有人建议它将作为下一版本 Windows Server 的一部分发布,但我还没有看到有关 Windows Server 2012 的任何内容证实这一点。

  • 您需要额外的服务器,或者至少建议您拥有它们。Microsoft 对 AppFabric 的建议是在专用服务器上运行它。这意味着虽然 AppFabric 本身可以免费下载,但您可能会产生额外的 Windows Server 许可证费用。说到这...

  • 您可能需要企业版许可证。如果您想使用 AppFabric 的高可用性功能,则只能使用运行企业版的服务器来执行此操作,企业版的许可证比标准版更昂贵。

  • 你可能根本不需要它。其中一些取决于您的应用程序以及您想要使用共享缓存层的原因。如果您担心多个服务器上的缓存可能与数据库(或者彼此之间)不同步,那么明智地使用SqlCacheDependency对象可能会帮助您解决这个问题。