我们的Web应用程序部署在Web场(超过20台服务器)中。该网站拥有巨大的流量(每天数百万的页面浏览量)。 在第一个版本中,此应用程序使用EntLib的CacheManager(Entreprise应用程序块缓存)。我们称之为“本地服务器缓存”。有许多好处,但我们仍有一个主要缺点:每个服务器管理自己的缓存和数据库访问(不分发)。
这就是我们尝试实施AppFabric缓存功能以减少数据库往返的原因。我们遇到的主要问题之一是数据同步:
那么大型网站的缓存策略是什么?
谢谢,
答案 0 :(得分:4)
我会说缓存只读数据尽可能多。为此,您可以使用AppFabric缓存服务。您可以设置一个让我们说5个缓存服务器的集群。然后,所有20个前端服务器都将与此缓存集群通信以获取缓存数据。您还可以将最常用的数据直接保存在前端(本地缓存)上。例如,我们的配置如下:
您想要更新的数据变得更加棘手。每次你介绍锁时,你的表现都会受到影响。
答案 1 :(得分:1)
正如我在MSDN上提到的,即时一致性很昂贵。你必须在一致性方面接受一些权衡,或者将大量现金用于立即保持一致。使用我们在MSDN上讨论的隔离读/写模型以及队列,可能为您提供最佳的性能/一致性。根据您的整体架构/设计,David建议的多层缓存也非常出色。使用您自己的本地进程内或本地主机缓存实现也提供了很多价值 - 而不是自己的AppFabric OOTB本地缓存的粉丝。
- AB