【问题标题】:How to cache in WCF multithreaded如何在 WCF 多线程中缓存
【发布时间】:2012-07-09 04:29:27
【问题描述】:

因此,在我的 WCF 服务中,我将缓存一些数据,以便将来对服务进行的调用可以获得该数据。

WCF 中缓存数据的最佳方式是什么?怎么做呢? 如果有帮助,WCF 服务是多线程的(并发模式是多的)并且 ReleaseServiceInstanceOnTransactionComplete 设置为 false。

检索此数据的第一次调用可能不存在,因此它将从某个源(可能是数据库,可能是文件,可能是任何地方)获取数据,但此后它应该缓存它并使其可用(理想情况下,使用对象的到期系统)

想法?

【问题讨论】:

    标签: wcf caching


    【解决方案1】:

    一些最常见的 WCF 服务解决方案似乎是:

    尝试阅读Caching Solutions

    【讨论】:

    • 谢谢。确实我在考虑appfabric。在 system.runtime 命名空间中使用缓存管理器怎么样?显然这与 ASP.NET 缓存几乎相同,但为 WCF 制作,因此您不依赖于 HttpRuntime
    【解决方案2】:

    当 SOA 应用程序使用的数据保存在一个无法为频繁事务扩展的存储中时,它就无法有效扩展。这是分布式缓存真正有用的地方。回到你的问题和 ErnieL 的回答,这里是这些解决方案的简要比较,

    就 Memcached 而言,如果您的应用程序需要在一组机器上运行,那么您很可能会从分布式缓存中受益,但是如果您的应用程序只需要在单台机器上运行,那么您就赢了使用分布式缓存不会获得任何好处,使用内置的 .Net 缓存可能会更好。 访问 memcached 缓存需要进程间/网络通信,与进程中的 .Net 缓存相比,这将产生较小的性能损失。 Memcached 作为外部进程/服务工作,这意味着您需要在生产环境中安装/运行该服务。同样,.Net 缓存不需要此步骤,因为它们是在进程中托管的。

    如果我们比较 NCache 和 Appfabric 的功能,NCache 人员对他们与 AppFabric 比较的功能范围非常有信心。关于这两种产品的比较,你可以在这里找到足够的材料,比如这个……

    http://distributedcaching.blog.com/2011/05/26/ncache-features-that-app-fabric-does-not-have/

    【讨论】:

      猜你喜欢
      • 2014-05-13
      • 2012-06-13
      • 2013-04-24
      • 2010-10-29
      • 2021-06-24
      • 2011-09-11
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      相关资源
      最近更新 更多