我需要开发一个专用的缓存服务(WCF服务或.Net远程服务或其他实现)来缓存数据库(SQL Server 2005)中的数据(.net3.5延迟测量应用程序的监控数据)。然后可以被2-3个Windows服务(.net 3.5 WCf服务)使用,这样他们就不需要重复调用DB了。所以基本上它是这些服务和数据库之间的附加服务层级,以减少调用DB的性能损失数据库中的数据很大且非常动态(事件在白天连续插入数据库)我们想要缓存。每个消费窗口服务都依赖于另一个(一个服务是从Db中的一个表中检索数据并将数据分解并将另一个表放入DB中,然后由另一个服务使用)。我们有以下要求:
我们没有集群环境或分布式环境,并不是一个非常高度可扩展的解决方案。
我想知道基于多种可用技术实现此目的的最佳方法是什么,以避免使其过于复杂:
任何建议和指导都非常宝贵。
的问候, KK
答案 0 :(得分:2)
这听起来非常优雅,但优雅不一定是好事。让我担心的不是使用缓存,而是试图解决数据库外部固有的数据库问题 - 并非每个公司都是Microsoft / Oracle / ......并且拥有制作出色数据库的人力资源。我相信你有数据库性能问题,并提出缓存作为解决方案。但它不是纯缓存,它需要处理数据一致性和数据更改以及简单读取,并且您正在尝试处理经常更改的数据,因此不适合缓存。国际海事组织,这是一场灾难呼吁。必须在另一个数据库前面实现所有数据库功能,这是不对的。
简化数据库并进行非规范化。如果您仍然需要缓存,请在ASP.NET外部使用ASP.NET缓存,只需在项目中引用它;它具有丰富的API,可满足您的任何需求。
答案 1 :(得分:0)
如果应用程序服务器在Windows Server 2008上运行,那么您可以使用AppFrabric进行缓存。