我要尋找最高效的方式來安排的數據高速緩存和數據高速緩存工廠AppFabric緩存電話的使用,每頁面加載400和700之間的高速緩存獲得(和幾乎沒有任何放) 。看起來,使用單個靜態DataCacheFactory(或可能是一對循環設置中的一對)是一條可行的路線。AppFabric緩存 - 正確使用DataCacheFactory和數據高速緩存
我稱GetCache(「cacheName」)爲每個數據高速緩存對象請求,還是我做一個靜態的時候數據高速緩存工廠被初始化,並使用所有的電話?
我必須處理異常,檢查故障代碼並試圖重試?
我必須考慮競爭當多個線程試圖使用緩存店,並希望在同一項目(通過鍵)?
是否有某種文檔其中適當探討這種設計和使用?
一些信息,我已經從論壇迄今收集:
http://social.msdn.microsoft.com/Forums/en-AU/velocity/thread/98d4f00d-3a1b-4d7c-88ba-384d3d5da915
「創建工廠包括連接到羣集,可能需要一些時間,但一旦你。有工廠對象和緩存要使用,你可以簡單地重複使用這些對象做puts和進入緩存,你應該會看到更快的性能上班「。
http://social.msdn.microsoft.com/Forums/en-US/velocity/thread/0c1d7ce2-4c1b-4c63-b525-5d8f98bb8a49
「創建單一DataCacheFactory(單身)比創建多個DataCacheFactory更多的表演。你不應該爲每個調用創建DataCacheFactory,就會有性能損失。」
「請嘗試在單例中封裝循環法算法(具有3/4/5個工廠實例)並比較加載測試結果。」
http://blogs.msdn.com/b/velocity/archive/2009/04/15/pushing-client-performance.aspx
「你可以增加客戶的數量增加緩存吞吐量。但有時,如果你想有較小的集客戶和增加吞吐量,一招是使用多個DataCacheFactory實例; DataCacheFactory實例創建到服務器的連接(如果有3個服務器,它將創建3個連接),並將來自數據緩存的所有請求都複用到這些連接上。因此,如果put/get卷非常高,這些TCP連接可能會成爲瓶頸,因此一種方法是創建多個DataCacheFactory實例,然後使用它們的操作。「
這裏到目前爲止使用了什麼......屬性被調用,並且如果返回值不爲null,則執行操作。
private static DataCache Cache
{
get
{
if (_cacheFactory == null)
{
lock (Sync)
{
if (_cacheFactory == null)
{
try
{
_cacheFactory = new DataCacheFactory();
}
catch (DataCacheException ex)
{
if (_logger != null)
{
_logger.LogError(ex.Message, ex);
}
}
}
}
}
DataCache cache = null;
if (_cacheFactory != null)
{
cache = _cacheFactory.GetCache(_cacheName);
}
return cache;
}
}
請參閱Microsoft AppFabric的論壇這樣一個問題:http://social.msdn.microsoft.com/Forums/en-AU/velocity/thread/e0a0c6fb-df4e-499f-a023-ba16afb6614f
沒有在論壇上回答這個現在。檢查上面的鏈接。 – CRice 2010-11-11 02:04:32