微軟分布式緩衝 AppFabric(Velocity)學習-緩衝概念(一)

來源:互聯網
上載者:User

學習中,順便翻譯,有不正確的地方歡迎指正,轉載請註明出處http://cnblogs.com/xuf22

一、Velocity是什麼

官方地址:http://www.microsoft.com/download/en/details.aspx?id=2517

“Velocity”是適用與所有資料來源的一個高速、“scalable in-memory ”的緩衝,通過使用該緩衝,可以減少不必要的資料來源訪問請求,極大的提高應用程式的效能。通過使用分布試的緩衝應用,可以滿足輸送量不斷增長的應用程式請求。“Velocity”分布在快取群集中,不需要大量人為幹涉,從而減少了負載平衡的複雜度。後期發布更名為【AppFabric

二、緩衝概念

1.基本概念

1.1 物理概念

“Velocity”是一個由多個可以相互連信,統一的應用程式快取服務的群集。物理模型的主要組件包括快取服務器,緩衝主機Windows服務,快取叢集,基於PowerShell的緩衝管理工具,叢集組態儲存位置和快取用戶端。

緩衝主機(cache host):

“Velocity”以服務形式運行在一個或多Windows服務上,這些服務即為緩衝主服務,運行主快取服務的主機稱作快取服務器。你仍然可以在安裝過“Velocity”的主機上運行其它程式,如:Web服務。但一個主機只能安裝一個“Velocity”執行個體。

快取服務主機與資料來源主機最好是在同一個域下,緩衝主機服運行在Network Service賬戶下,緩衝主服務上的各種操範圍下的快取認證憑據。“Velocity”使用許可權較低的網路服務帳戶,可以有效減少被惡意攻擊造成的損害。

快取叢集(cache cluster ):

快取叢集是指一個或多個緩衝主服務的組成的一個環形的、共同儲存分發資料的解決方案。將資料存放區在記憶體中,以減少請求資料的回應時間。群集的操作和控制由"cluster management role”管理,它包括以下三點:

1.讓快取叢集一直處於運行狀態

2.監測快取叢集中的所有緩衝主機

3.協助緩衝主機加入快取叢集

群集配置儲存區(Cluster Configuration Storage Location)

叢集每次啟動時,必須從群集配置中的儲存位置檢索配置資訊。下表顯示了兩種可能的方式

基於PowerShell的管理工具(PowerShell-Based Cache Administration Tool)

快取用戶端(Cache Client)

“Velocity”分布式緩衝叢集是設計用於應用伺服器在企業資料中心,並部署在企業防火牆的內。任何使用伺服器上啟動並執行快取的應用程式統稱為快取用戶端。

 

1.2 邏輯模型

邏輯概念上將Velocity分為:(named caches)緩衝命名(這個真不知道怎麼翻譯),(regions)緩衝域和(cached objects)緩衝對象。

named caches:

是一個通過配置在記憶體中形成的分布式緩衝儲存單元。你可以在一個應用程度中配置一個或多個name caches,每個name caches不會受其它配置的影響,這樣你可根據程式的需要,配置多個name cache,並且每個name caches使用不同的緩衝策略。

如所示:name caches跨越分布在每個緩衝主機上,如果你不為緩衝指定名稱,你的資料將被儲存在預設的“default”緩衝命名下。

所有緩衝都有群集配置來定義。使用PowerShell的緩衝管理工具來建立或重新設定緩衝。某些設定只能第一次建立緩衝時配置。例如,您使用New-Cache命令啟用高可用性或通知功能。其他設定可以以後改變,但可能需要重新啟動整個緩衝叢集。

regions:

regions是一個邏輯上的緩衝儲存域(感覺可以理解為一個命名空間吧)。regions是一個可選項,不是通過配置建立的,你必需在代碼中用CreateRegion函數建立。可以通過regions尋找該region下的所有cache objects。為了提供這種附加的搜尋功能,在一個地區內的對象僅限於一個單一的緩衝主機。因此,使用該資料的應用程式無法實現分布式緩衝的可擴充性優勢。相反,如果你不指定一個地區,緩衝的對象,否則可以Server Load Balancer叢集中的所有緩衝主機。

caches objects:

從緩衝中取出的資料都是System.Object類型,需要通過類型轉換得到它的原始類型。當一個對象存在與Caches時,Caches將關聯該對象的版本,鍵,標籤等。

 

1.3 編程概念(Programming )

當資料不存在於你的用戶端緩衝中時,需要重新從Caches Host中載入。用戶端使用DataCache類來添加用戶端cache。

緩衝策略(Caching Strategy)

應用程式就設計成在沒有緩衝存在時仍然可以正常運行,因為緩衝並不是絕對持久有效,它總有失效或不存在的可能性。Velocity的高可用性可以有效防止群集中的個別主機故障帶來的問題,但是如果群集中有太多的主機掛了,那Velocity還是會掛(相當與disk raid吧,壞了個別還可以跑)。

還有許多其他的原因會導致程式找不到緩衝:緩衝可能已經到期或者被移除,可能已重新啟動快取服務器,緩衝主機服務可能已重新啟動,或快取叢集可能已被意外重新啟動。所以務必確保在沒有緩衝的情況下,應用程式仍然可以訪問到正資料並正常運行。

快取用戶端(Cache Clients)

為了儲存在緩衝中的資料,可以使用GetCache方法用於返回一個DataCache對象, DataCache對象執行個體化後的執行個體被稱為快取用戶端。有許多選項可用來配置快取用戶端的行為,編程方式或使用應用程式設定檔,或同時使用這兩種方法。

以下代碼示範DataCache讀寫緩衝

DataCache Demo//Each application has a similar GetCache method callDataCacheFactory myCacheFactory = new DataCacheFactory();DataCache catalog = myCacheFactory.GetCache("catalog");//One cache client saves an object to the catalog named "toy101"catalog.Put("toy101", new ToyObject("toy101", "Playschool"));//The same or different cache client retrieves the objectToyObject toy = (ToyObject)catalog.Get("toy101");//The same or a different cache client removes the objectcatalog.Remove("toy101");

1.4 配置概念(Configuration Model )

Velocity支援許多緩衝配置。配置可分為3個層級:用程式級,緩衝主機級,快取叢集級。 Velocity還提供了用於指定和儲存的緩衝叢集和用戶端應用程式使用的配置。

應用程式級配置(Application Configuration)

每個Velocity的快取用戶端都必需有快取用戶端配置。可以在代碼中指定配置也可以在應用程式的.config檔案中配置。如果兩種方式同時指定,代碼中的配置將覆蓋設定檔的配置。

應用程式設定包涵了可以與cache hosts通訊的唯一配置,同時需要指定本機快取配置。

緩衝主機配置(Cache Host Configuration)

每個緩衝主機通過DistributedCache.exe.config檔案配置,DistributedCache.exe.config在安裝Velocity時自動建立,該配置是快取服務運行必需要的,通常情況下你不需要修改該配置。

群集配置(Cluster Configuration)

所有在叢集服務中的緩衝主機都必需指定與群集通訊許可權的配置。群集配置指定了cache hosts和named caches的配置。叢集服務配置在第一個群集中緩衝主機安裝時被指定的,之後的緩衝主機安裝時將自動從此主機同步。

群集配置有兩個可用選項。

Storage type Storage location Cluster management

SQL Server Compact data file

shared network folder

lead hosts

SQL Server database

SQL Server

SQL Server (default) or lead hosts

 

 

Technorati 標籤: 分類式緩衝-Velocity

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.