【发布时间】:2010-10-14 08:39:07
【问题描述】:
我需要开发一个专用的缓存服务(WCF 服务或 .Net 远程服务或其他实现)来缓存来自数据库(SQL Server 2005)的数据(监控 .net3.5 延迟测量应用程序的数据)然后可以被2-3个windows服务(.net 3.5 WCf服务)使用,这样它们就不需要重复调用DB了。所以基本上它是这些服务和数据库之间的附加服务层,以减少调用数据库的性能损失数据库中的数据很大并且非常动态(白天不断插入数据库中的事件)我们想要缓存。每个正在使用的 windows 服务都依赖于另一个(一个服务正在从 Db 中的一个表中检索数据并聚合数据并放入 DB 中的另一个表中,然后该表将由另一个服务使用)。我们有以下要求:
- 可以有 Push 或 Pull 模型 用于推送或检索数据 往返于数据库和服务。
- 缓存必须减少整体 对数据库和加载数据的影响 delta,而不是重新加载 数据完整
- 如果 DB 中的源数据发生变化,则必须更新缓存数据。 sql缓存过期策略必须是 已定义。
- 应该有异步方法调用从数据库中检索数据和 缓存更新以最大程度地减少等待时间
- 缓存必须支持对单个 DB 的并行请求
- CPU 和内存利用率应保持在最佳水平 不会对他人产生负面影响 服务。
我们没有集群或分布式环境,也不是一个高度可扩展的解决方案。
我想知道基于几种可用技术来实现此功能的最佳方法是什么,以避免使其过于复杂:
- .Net 框架缓存
- 一致性缓存
- 速度
- WCF 的基于 Rest 的服务
任何建议和指导都非常宝贵。
问候, KK
【问题讨论】:
-
悲哀地看到这个问题基本上去了墓地。