分散式快取小結
一 分散式快取特性
1) 高效能:當傳統資料庫面臨大規模資料訪問時,磁碟I/O 往往成為效能瓶頸,從而導致過高的響應延遲.分散式快取將高速記憶體作為資料物件的儲存介質,資料以key/value 形式儲存,理想情況下可以獲得DRAM 級的讀寫效能;
2) 動態擴充套件性:支援彈性擴充套件,通過動態增加或減少節點應對變化的資料訪問負載,提供可預測的效能與擴充套件性;同時,最大限度地提高資源利用率;
3) 高可用性:可用性包含資料可用性與服務可用性兩方面.基於冗餘機制實現高可用性,無單點失效(single point of failure),支援故障的自動發現,透明地實施故障切換,不會因伺服器故障而導致快取服務中斷或資料丟失.動態擴充套件時自動均衡資料分割槽,同時保障快取服務持續可用;
4) 易用性:提供單一的資料與管理檢視;API 介面簡單,且與拓撲結構無關;動態擴充套件或失效恢復時無需人工配置;自動選取備份節點;多數快取系統提供了圖形化的管理控制檯,便於統一維護;
5) 分散式程式碼執行(distributed code execution):將任務程式碼轉移到各資料節點並行執行,客戶端聚合返回結果,從而有效避免了快取資料的移動與傳輸.最新的Java 資料網格規範JSR-347中加入了分散式程式碼執行與Map/reduce 的API 支援,各主流分散式快取產品,如IBM WebSphere eXtreme Scale,VMware GemFire,GigaSpaces XAP 和Red Hat Infinispan 等也都支援這一新的程式設計模型.
二 典型應用場景
分散式快取的典型應用場景可分為以下幾類:
1) 頁面快取.用來快取Web 頁面的內容片段,包括HTML、CSS 和圖片等,多應用於社交網站等;
2) 應用物件快取.快取系統作為ORM 框架的二級快取對外提供服務,目的是減輕資料庫的負載壓力,加速應用訪問;
3) 狀態快取.快取包括Session 會話狀態及應用橫向擴充套件時的狀態資料等,這類資料一般是難以恢復的,對可用性要求較高,多應用於高可用叢集;
4) 並行處理.通常涉及大量中間計算結果需要共享;
5) 事件處理.分散式快取提供了針對事件流的連續查詢(continuous query)處理技術,滿足實時性需求;
6) 極限事務處理.分散式快取為事務型應用提供高吞吐率、低延時的解決方案,支援高併發事務請求處理,多應用於鐵路、金融服務和電信等領域.
三 快取的分類
1) 本機快取:資料儲存在應用程式碼所在記憶體空間.優點是可以提供快速的資料訪問;缺點是資料無法分散式共享,無容錯處理
2) 分散式快取系統:資料在固定數目的叢集節點間分佈儲存.優點是快取容量靜態擴充套件;缺點是擴充套件過程中需要大量配置,無容錯機制.典型的
3) 彈性分散式快取系統:資料在叢集節點間分佈儲存,基於冗餘機制實現高可用性.優點是可動態擴充套件,具有容錯能力;缺點是複製備份會對系統性能造成一定影響
4) 彈性分散式快取應用平臺:彈性應用平臺代表了雲環境下分散式快取系統未來的發展方向.簡單地講,彈性應用平臺是彈性快取與程式碼執行的組合體,將業務邏輯程式碼轉移到資料所在節點執行,可以極大地降低資料傳輸開銷,提升系統性能