【问题标题】:WCF Caching Solution - Need AdviceWCF 缓存解决方案 - 需要建议
【发布时间】:2011-01-26 16:01:18
【问题描述】:

我工作的公司正在寻求实施缓存解决方案。我们托管了多个 WCF Web 服务,我们需要缓存某些值,无论客户端与服务的会话如何,这些值都可以持久化和获取。我正在研究以下技术:

  • 缓存应用程序块 4.1

  • 使用 HttpRuntime 缓存的 WCF TCP 服务

  • Memcached Win32 和客户端

  • Microsoft AppFabric 缓存测试版 2

我们的测试服务器是带有 IIS6 的 Windows Server 2003,但我们的生产服务器是 Windows Server 2008,因此上述任何选项都可以工作(我们的测试服务器上的 AppFabric 缓存除外)。

有人对这些有任何经验吗?这种缓存解决方案不会用于存储大量数据,但需要频繁且快速地从中获取。

提前致谢。

【问题讨论】:

  • 测试服务器与生产不同的操作系统和 IIS?那很难。无论如何,让我提出第五个选择:内存数据库;非常适合“频繁且快速地获取”。在便宜的情况下,一个实施良好的 SQLite 数据库可以接近于匹配纯内存数据库的性能。

标签: c# .net wcf caching


【解决方案1】:

我们在我们的应用程序中使用了内置的 HttpRuntime Caching,它工作得很好。

安装非常简单,因为您的服务器上无需安装任何东西。此外,以后迁移到 AppFabric 缓存应该没什么大不了的。

也就是说,它也有一些限制,特别是如果您的服务不是托管在同一个 IIS 应用程序中,因为每个缓存对象都将被复制。如果您不打算缓存大量数据和/或如果您不打算长时间缓存它们,那么您应该没问题,因为您最终不会消耗太多 RAM。

您似乎没有负载平衡的服务器,但在这种情况下,使用 HttpRuntime 缓存也意味着在每台服务器上复制缓存。您可以使用 memcached 或 AppFabric 缓存来防止这种情况...

【讨论】:

  • 谢谢朱利安。我们使用 HttpRuntime Caching 作为解决方案,直到 AppFabric Caching 推出测试版。 AppFabric 可能会成为我们的最终解决方案,因为当我们转向为我们的服务器提供负载平衡解决方案时,它将为我们提供缓存解决方案。
【解决方案2】:

如果您对缓存策略没有特殊要求,可以为需要缓存的服务创建 RESTful 接口,使用“GET”方法,然后让浏览器处理缓存。

【讨论】:

  • 缓存解决方案不会用于结果。它将用于存储用户会话信息和索引状态等内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
  • 2011-05-10
  • 1970-01-01
  • 2011-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多