[英]ASP.Net server side data caching on a web farm
场景:
在Web场方案的ASP.Net应用程序的WCF层中实现主数据的内存中缓存
我们提出的解决方案:
我们打算有一个外部服务/ exe /网页,该网页将了解所有负载平衡的服务器(通过配置文件)。 为了使特定的缓存无效,我们将调用此外部组件,从而使所有Web服务器上的相应缓存密钥无效,然后加载最新数据并进行缓存。
问题:
尽管上述方法对我们有用,但对于企业级LOB应用程序,我们认为这不是干净的方法。 是否有更好/更清洁的方法来实现多台服务器上的缓存过期?
注意:
将您的设计与Windows Azure角色内缓存和AppFabric缓存进行比较。
在那些产品中,缓存存储在一个或多个服务器(缓存群集)中。 为了加快请求,他们创建了Local Cache 。
启用本地缓存后,缓存客户端将在本地存储对该对象的引用。 此本地引用使对象在客户端应用程序的内存中保持活动状态。 当应用程序请求对象时,缓存客户端会检查对象是否驻留在本地缓存中。 如果是这样,将立即返回对该对象的引用,而无需联系服务器。 如果不存在,则从服务器检索对象。 然后,缓存客户端反序列化对象,并将对该新检索到的对象的引用存储在本地缓存中。 客户端应用程序使用相同的对象。
本地缓存可能会因超时和/或通知而失效
使用缓存通知时,您的应用程序会定期检查缓存集群,以查看是否有新的通知可用。 默认情况下,此间隔称为轮询间隔,每300秒。 在应用程序配置设置中,以秒为单位指定轮询间隔。 请注意,即使基于通知的失效,超时仍然适用于本地缓存中的项目。 这使基于通知的失效与基于超时的失效互补。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.