2010-05-03 22 views
3

我有一個網站,使用OutputCache屬性來緩存頁面。很棒。如何使webfarm中的OutputCache失效?

現在,我處於R &的中間,請將該網站擴大至網絡農場。除了通常的webfarm痛苦嫌疑......我注意到(很快/明顯)Server_A的OutputCache並不會使Server_B的OutputCache失效。如果嘗試並使單個服務器的OutputCache無效。這使得總體感覺 - >當S_A'實際上是2個獨立的機器等時,如何告訴S_B無效?

那麼 - 我們有什麼選擇?

Velocity?我知道這會將緩存移至不同的層..這意味着最終結果(輸出)將始終需要確定..與OutputCache相反,它記住了最終輸出內容(是的,varby提供了不同的版本,等等。這完全沒錯)。因此,即使poco或業務對象全部同步,仍然需要最後一次渲染工作(即使與生成/同步業務對象的努力相比,它仍然很小)。

所以是啊..不確定這裏的選擇和其他人做什麼?

回答

2

正如您在上面所說的那樣,ASP.NET輸出緩存開箱即用於每臺服務器。但是,在ASP.NET 4.0中,整個緩存基礎結構是可插入的。 ScottGu有一個blogpost利用這個輸出緩存。我寫了一些使用Velocity/AppFabric作爲緩存引擎的演示代碼,應該做你想做的 - 看看我的博客here

0

看看到memcached

什麼是memcached?
免費&開源,高性能,分佈式 內存對象緩存系統,在本質上是通用的,但 打算用於通過 加快動態Web應用程序,減輕數據庫負載。

wikipedia

該系統用於由幾個非常大的,衆所周知的網站,包括 YouTube的[2],的LiveJournal,維基百科/維基,Amazon.com,維基, SourceForge上的Metacafe ,Facebook [3] [4],Twitter [5],Fotolog, Pirate Bay [6]和Netlog。[7]

.NET客戶端here

遺憾的是它不與Windows很好地工作。它可以安裝,但最好的集成與Linux。

+0

MemcacheD就像Velocity一樣。我知道因爲我貢獻了一段時間將它移植到.NET x64。所以不幸的是,這是不是我現在正在尋找..不過,如果這是人們正在使用..然後我有一個答案。 – 2010-05-03 02:39:31

+0

考慮到Velocity是非常非常新的東西。微軟產品從版本1開始並不是很常見。0 :-) – 2010-05-03 02:52:50

+0

真實 - 我不是說我想要跟Velocity一起去,等等。 – 2010-05-03 03:24:55