我正在制定一個計劃,通過緩存WCF Web服務的用戶數據庫來提高Web應用程序的性能和可伸縮性。目標是通過訪問inProc中的這些數據來提高數據庫服務器的性能,同時通過減少數據庫服務器的負載來提高服務的可伸縮性,從而允許添加更多的Web服務器來增加規模。AppFabric與具有sqldependency性能的asp.net緩存
在研究AppFabric時,我真的沒有看到我的情況中的值,因爲它似乎在很大程度上,我只是用往返緩存集羣來取代往返數據庫的往返行爲就像它可能比db的開銷更多,以保持節點同步)。
對於性能問題,似乎使用asp.net高速緩存(正在處理中)將比往返於高速緩存集羣的速度快得多,即使數據位於這些服務器的內存中,即使某些它在本地緩存(我相信這仍然會從Web應用程序中退出)。
對於可伸縮性問題,似乎更容易將相同的Web服務器添加到Web場(每個緩存正在處理的用戶數據),而不是單獨管理緩存羣集,這會增加複雜性。
這樣說,有人可以解釋爲什麼我會選擇一種方法比另一方,給我的既定目標?如果您推薦AppFabric方法,您能解釋性能如何比在進程中將數據存儲在asp.net緩存中更好。
謝謝!
謝謝西拉,很好的信息。還有更多問題。由於對緩存數據的請求沒有處理,並且很可能在另一臺機器上運行,所以這聽起來似乎不會直接進入數據庫,從而改善性能。數據庫直接表現可能更糟糕?如果是這樣的話,看起來唯一的好處是,通過向集羣添加更多計算機來擴展AppFabric層,以便通過分區等來擴展數據庫更容易。這是一個正確的假設嗎? – user969996
Appfabric比數據庫更快,因爲數據庫可能需要轉到磁盤。您可以將appfabric配置爲在本地進行緩存,但這會在進行中。 –