Velocity是微軟推出的分布式緩存解決方案,為開發可擴充性,可用的,高性能的應用程提供支援,可以緩存各種類型的資料,如CLR對象、XML、二進制資料等,并且支援叢集模式的緩存伺服器。Velocity也将內建在.NET Framework 4.0中,本文将介紹Velocity的一些預備知識、安裝配置以及開發一個簡單的示例。
既然是分布式的緩存平台,用戶端應用程式能夠與緩存伺服器叢集中的任何一台伺服器通信,并且執行緩存操作,如新增緩存項,移除緩存項等。在Velocity中,提供了一套統一的API,開發者可以使用任何一種.NET語言來通路這些API,如圖1所示:
圖 1
在整個Velocity分布式緩存解決方案中,從實體模型上來看,主要涉及到如下幾個元素:緩存宿主,緩存叢集,Velocity提供的基于Windows PowerShell的管理工具,對于伺服器叢集配置的存儲。緩存宿主是指一個或者多個以Windows服務形式運作的伺服器,每台伺服器都可以運作緩存宿主服務;緩存叢集是一個或者多個緩存宿主執行個體的集合;當緩存叢集啟動時,它将從叢集配置存儲位置處來擷取配置資訊,Velocity提供了多種方式的叢集配置資訊存儲,可以基于XML檔案、SQL Server資料庫或者SQL Server CE等;基于PowerShell的管理工具後面會詳細講到。 如圖2所示:
圖 2
從邏輯模型上來看,在Velocity中主要有命名緩存,在命名緩存中我們還可以繼續分區,命名緩存,可以了解為記憶體中的一個獨立的存儲結構單元,它們之間完全互相隔離,互不幹擾,當有多個應用程式共享同一個緩存叢集時,可以為每個應用程式分别建立命名緩存;在同一個命名緩存中,還可以對命名緩存進行分區,這樣即可以解決資料沖突的問題,再配合Velocity中的“标簽”功能,可以極大的提高檢索效率。如圖3所示:
圖 3
Velocity目前最新的版本是CTP 2,大家可以到微軟官方站點下載下傳,由于Velocity中提供了一套基于Windows PowerShell的管理工具,是以在安裝之前需要首先安裝Windows PowerShell。在安裝過程中,其中有一步需要進行伺服器叢集的配置,如圖4所示:
圖 4
需要設定服務及叢集端口号,叢集配置的存儲位置,叢集配置存儲的Provider,可以基于XML存儲或者基于SQL Server CE存儲等。另外可以通路如下站點獲得一些資源:
安裝完成後,請在Windows Service中啟動Microsoft project code named "Velocity"服務。
<a href="http://11011.net/software/vspaste"></a>
使用如下指令可以啟動、停止緩存宿主、擷取命名緩存、擷取緩存分區等:
如使用Get-CacheHost指令擷取緩存宿主的資訊,如圖5所示,可以看到宿主對應的服務名以及服務狀态等:
圖 5
使用Get-Cache命名檢視所有的命名緩存,如圖6所示:
圖 6
使用該管理工具還可以建立、移除命名緩存等,這裡不再叙述。
經過前面一大堆的理論介紹,現在來看一個最簡單的示例。首先要把CacheBaseLibrary和ClientLibrary這兩個程式集添加到應用程中,在Velocity安裝目錄下可以找到,并且引入命名空間:
在使用Velocity緩存資料時,首先需要建立一個命名緩存,它可以通過CacheFactory來建立,如下代碼所示:
此處首先指定了所有的伺服器資訊,當然這些都可以放在應用程式配置檔案中,将會在下篇中介紹,有了Cache對象,其它的使用就非常友善了,如我們可以使用Add、Put、Remove、Get等方法來對緩存項進行操作,
添加緩存項:
擷取緩存項:
運作程式可以測試,資料被正确的緩存,如圖7所示:
圖 7
本文簡單介紹了微軟的分布式緩存解決方案Velocity的一些概念以及開發了一個簡單的示例,希望對大家有用。在下篇文章中,我們将會更深入學習緩存複雜資料類型以及Velocity的程式設計模型和配置模型。
本文轉自lihuijun51CTO部落格,原文連結:http://blog.51cto.com/terrylee/151965 ,如需轉載請自行聯系原作者