2011-02-08 56 views
3

我有一個運行在100臺服務器上的應用程序。這個應用程序與我不喜歡的nosql數據庫進行通信。 100個服務器創建會話,鎖定,提交等。高速緩存養殖,讀取池

我想構建一個緩存服務器場或IIS服務器將要去的髒實際池,並從中讀取數據,對象。緩存將每隔一段時間到期。等等。

重點在於避免從這100個服務器訪問數據庫。

您對這個緩存服務器場有什麼用?

WCF?休息?最佳實踐和模式緩存塊?或Windows AppFabric?

我已經有一層分佈式緩存,所以沒有想到這一點。

你會選擇什麼架構?任何建議或案例研究?

+1

爲什麼你不想要一個分佈式緩存?這不是你所描述的嗎? – David 2011-02-08 21:15:06

+0

我已經有分佈式緩存。我使用速度緩存,它仍然是阿爾法(死)變成天青(或其他)。不支持它。 – DarthVader 2011-02-08 21:57:38

回答

1

我們在這裏談論的是什麼樣的數據量?幾KB? MB?一百GB?

如果只是後者,而不是重新發明輪子,請使用現有的緩存服務之一。基於C#標記和提及IIS,我假設你正在運行Windows。因此我建議你看看Memcached

從Memcached的頁面:

免費&開源的,高性能的,分佈式的內存對象緩存系統,通用的性質,但預期用於通過減輕數據庫負載來加速動態Web應用程序。

Memcached是內存中的鍵值存儲,用於從數據庫調用,API調用或頁面呈現結果中爲任意數據(字符串,對象)創建小塊。

我已經在類似於您所描述的環境中使用Memcached(使用MS SQL而不是nosql進行數據存儲)。在首輪高速緩存調優之後,我們並沒有遇到任何問題。

不知道您的要求的具體情況,很難說如果Memcached是正確的解決方案,但它肯定是值得研究的東西。僅供參考他們的常見問題Wiki可以在這裏找到:

http://code.google.com/p/memcached/wiki/FAQ