【问题标题】:Distributed caching solution for WCF serviceWCF服务的分布式缓存解决方案
【发布时间】:2012-03-19 21:54:35
【问题描述】:

我们有一个典型的 ASP.NET 应用程序,其中包含一个 Web 应用程序和一个电话客户端应用程序,它与使用 SQL Server 数据库的 WCF 服务通信。目前我们只有一次 WCF 服务实例托管在 IIS 中,但将来可能会决定部署到 webfarm。

我们希望将关系数据缓存在 WCF 服务端的缓存中,这样 Web 应用和手机应用都可以从中受益。 WCF 服务是完全无状态的,我们需要保持这种状态。

有了这些限制,我们可以使用哪些可用技术/解决方案/第三方组件来实现 WCF 服务上的缓存。哪些在 webfarm 场景中效果最好?

【问题讨论】:

    标签: .net wcf caching distributed-caching


    【解决方案1】:

    你看过Windows Server AppFabric吗?它将在您的网络场中扩展,并且应该与大多数基于服务器的 .NET 解决方案兼容。

    我们在项目中广泛使用它,而且效果很好。

    【讨论】:

    • app fabric 是我可以在我的服务器上安装/部署的独立组件吗?我认为它更像是一个 Azure 云解决方案,应用程序必须在 Azure 中运行才能从中受益。
    • 是的,它可以部署在您的服务器上。我相信有两个版本,Windows Azure AppFabric 和 Windows Server AppFabric。前者是基于云的选项,后者是本地安装的服务器版本。总体上查看 AppFabric 上的 wiki 以了解不同之处:en.wikipedia.org/wiki/AppFabric
    • 是的。感谢您指出这一点。还有其他替代解决方案吗?
    • 我知道这个答案在这一点上已经三年了,但是任何阅读这篇文章的人都应该知道以后的发展。微软最近宣布,Windows Server AppFabric 将于 2017 年停产,将不再受支持。所以这不再是一个可行的选择。
    【解决方案2】:

    这里有一些第三方选项:
    NCache
    内存缓存
    雷迪斯
    AppFabric

    这只是一些,但还有其他的。

    【讨论】:

      【解决方案3】:

      NCache 在这里可能是一个更好的选择。您所要做的就是在 WCF 和 SQL Server 之间创建一个缓存层,然后在缓存中填充数据。该数据的所有后续请求将被缓存切断。

      阅读下面提到的文章,它将进一步阐明 WCF 缓存的概念。

      Scalable WCF Applications Using Distributed Caching

      【讨论】:

        猜你喜欢
        • 2014-12-01
        • 2011-08-30
        • 2022-01-01
        • 2011-06-23
        • 2011-01-26
        • 2010-10-06
        • 2011-03-01
        • 2021-04-11
        • 1970-01-01
        相关资源
        最近更新 更多