如何使webfarm中的OutputCache无效?

时间:2010-05-03 02:24:38

标签: asp.net caching outputcache appfabric

我有一个使用OutputCache属性来缓存页面的网站。效果很好。

现在,我正处于R& D'中心,将此网站扩展为 Web场。除了通常的webfarm痛苦的嫌疑人......我已经注意到(非常快/显然)来自Server_A的OutputCache不会使Server_B的OutputCache无效..如果尝试并使单个服务器的OutputCache无效。这使得总体意义 - >如果S_A'告诉'S_B在物理上是2个单独的机器等时无效?

那么 - 我们有什么选择?

速度?我理解这会将缓存移动到另一个层..这意味着将始终需要确定最终结果(输出)...而不是OutputCache记住最终输出内容(是的,varby给出了不同的版本,等等。这完全没问题。因此,即使poco或业务对象全部同步,仍然需要最后的渲染工作(即使它很小......与生成/同步业务对象的工作相比)。

所以是啊..不确定这里的选项以及其他人做什么?

2 个答案:

答案 0 :(得分:2)

如上所述,开箱即用的ASP.NET输出缓存适用于每个服务器。但是在ASP.NET 4.0中,整个缓存基础结构是可插拔的。 ScottGu有一个blogpost利用它来进行输出缓存。我写了一些使用Velocity / AppFabric作为缓存引擎的演示代码,应该做你想做的事 - 看看我的博客here

答案 1 :(得分:0)

看看memcached

  

什么是Memcached?
  免费&开源,高性能,   分布式内存对象缓存系统,本质上是通用的,但是   旨在用于加速动态Web应用程序   减轻数据库负载。

来自wikipedia

  

该系统被几个非常大的知名网站使用,包括   YouTube [2],LiveJournal,维基百科/维基媒体,Amazon.com,Wikia,   SourceForge,Metacafe,Facebook [3] [4],Twitter [5],Fotolog,The   Pirate Bay [6]和Netlog。[7]

.NET客户端here

不幸的是,它与Windows无法很好地协同工作。它可以安装但最好的集成是linux。