您好,登錄后才能下訂單哦!
本文將從理論的角度去介紹分布式緩存,在構建大規模的web應用時,緩存技術可以說是必備的,學習的必要性不言而喻。
分布式緩存概述
1.1 分布式緩存的特性
分布式緩存具有如下特性:
1) 高性能:當傳統數據庫面臨大規模數據訪問時,磁盤I/O 往往成為性能瓶頸,從而導致過高的響應延遲.分布式緩存將高速內存作為數據對象的存儲介質,數據以key/value 形式存儲,理想情況下可以獲得DRAM 級的讀寫性能;
2) 動態擴展性:支持彈性擴展,通過動態增加或減少節點應對變化的數據訪問負載,提供可預測的性能與擴展性;同時,最大限度地提高資源利用率;
3) 高可用性:可用性包含數據可用性與服務可用性兩方面.基于冗余機制實現高可用性,無單點失效(single point of failure),支持故障的自動發現,透明地實施故障切換,不會因服務器故障而導致緩存服務中斷或數據丟失.動態擴展時自動均衡數據分區,同時保障緩存服務持續可用;
4) 易用性:提供單一的數據與管理視圖;API 接口簡單,且與拓撲結構無關;動態擴展或失效恢復時無需人工配置;自動選取備份節點;多數緩存系統提供了圖形化的管理控制臺,便于統一維護;
1.2 典型應用場景
分布式緩存的典型應用場景可分為以下幾類:
1) 頁面緩存.用來緩存Web 頁面的內容片段,包括HTML、CSS 和圖片等,多應用于社交網站等;
2) 應用對象緩存.緩存系統作為ORM 框架的二級緩存對外提供服務,目的是減輕數據庫的負載壓力,加速應用訪問;
3) 狀態緩存.緩存包括Session 會話狀態及應用橫向擴展時的狀態數據等,這類數據一般是難以恢復的,對可用性要求較高,多應用于高可用集群;
4) 并行處理.通常涉及大量中間計算結果需要共享;
5) 事件處理.分布式緩存提供了針對事件流的連續查詢(continuous query)處理技術,滿足實時性需求;
6) 極限事務處理.分布式緩存為事務型應用提供高吞吐率、低延時的解決方案,支持高并發事務請求處理,多應用于鐵路、金融服務和電信等領域.
1.3 分布式緩存的發展
分布式緩存經歷了多個發展階段,由最初的本地緩存到彈性緩存平臺直至彈性應用平臺[8],目標是朝著構建更好的分布式系統方向發展(如下圖所示).
1) 本地緩存:數據存儲在應用代碼所在內存空間.優點是可以提供快速的數據訪問;缺點是數據無法分布式共享,無容錯處理;
2) 分布式緩存系統:數據在固定數目的集群節點間分布存儲.優點是緩存容量可擴展(靜態擴展);缺點是擴展過程中需要大量配置,無容錯機制.典型的,如 Memcached;
3) 彈性緩存平臺:數據在集群節點間分布存儲,基于冗余機制實現高可用性.優點是可動態擴展,具有容錯能力;缺點是復制備份會對系統性能造成一定影響.典型的,如 Windows Appfabric Caching;
4) 彈性應用平臺:彈性應用平臺代表了云環境下分布式緩存系統未來的發展方向.簡單地講,彈性應用平臺是彈性緩存與代碼執行的組合體,將業務邏輯代碼轉移到數據所在節點執行,可以極大地降低數據傳輸開銷,提升系統性能.典型的,如 GigaSpaces XAP.
1.4 分布式緩存與NoSQL
NoSQL 又稱為Not Only Sql,主要是指非關系型、分布式、支持水平擴展的數據庫設計模式.NoSQL 放棄了傳統關系型數據庫嚴格的事務一致性和范式約束,采用弱一致性模型.相對于NoSQL 系統,傳統數據庫難以滿足云環境下應用數據的存儲需求,具體體現在以下3 個方面:
1) 根據CAP 理論,一致性(consistency)、可用性(availability)和分區容錯(partition tolerance)這3 個要素最多同時滿足兩個,不可能三者兼顧.對云平臺中部署的大量Web 應用而言,數據可用性與分區容錯的優先級通常更高,所以一般會選擇適當放松一致性約束.傳統數據庫的事務一致性需求制約了其橫向伸縮與高可用技術的實現;
2) 傳統數據庫難以適應新的數據存儲訪問模式.Web 2.0 站點以及云平臺中存在大量半結構化數據,如用戶Session 數據、時間敏感的事務型數據、計算密集型任務數據等,這些狀態數據更適合以Key/Value 形式存儲,不需要RDBMS 提供的復雜的查詢與管理功能;
3) NoSQL 提供低延時的讀寫速度,支持水平擴展,這些特性對擁有海量數據訪問請求的云平臺而言是至關重要的.傳統關系型數據無法提供同樣的性能,而內存數據庫容量有限且不具備擴展能力.分布式緩存作為NoSQL 的一種重要實現形式,可為云平臺提供高可用的狀態存儲與可伸縮的應用加速服務,與其他NoSQL 系統間并無清晰的界限.平臺中應用訪問與系統故障均具有不可預知性,為了更好地應對這些挑戰,應用軟件在架構時通常采用無狀態設計,大量狀態信息不再由組件、容器或平臺來管理,而是直接交 付給后端的分布式緩存服務或NoSQL 系統.
1.5 分布式緩存與極限事務處理
隨著云計算與 Web 2.0 的進一步發展,許多企業或組織時常會面對空前的需求:百萬級的并發用戶訪問、每秒數以千計的并發事務處理、靈活的彈性與可伸縮性、低延時及7×24×365 可用性等.傳統事務型應用面臨極限規模的并發事務處理,出現了極限事務處理型應用,典型的有鐵路售票系統.Wikipedia 認為,極限事務處理是每秒多于500 事務或高于10 000 次并發訪問的事務處理[12].Gartner 將極限事務處理(extreme transactionprocessing,簡稱XTP)定義為一種為事務型應用的開發、部署、管理和維護供支持的應用模式,特點是對性能、可擴展性、可用性、可管理性等方面的極限需求.Gartner 在其報告中預測指出,極限事務處理型應用的規模將由2005 年的10%提升至2010 年的20%,極限事務處理技術是未來5 年~10 年的熱點技術.極限事務處理的引入,無疑給傳統Web 三層架構帶來了新的挑戰.即,如何在廉價的、標準化的硬件和軟件平臺之上,對大容量、業務關鍵型的事務處理應用提供良好的支撐.分布式緩存作為一種關鍵的XTP 技術,可為事務型應用提供高吞吐率、低延時的技術解決方案.其延遲寫(write-behind)機制可提供更短的響應時間,同時極大地降低數據庫的事務處理負載,分階段事件驅動架構(staged event-driven architecture)可以支持大規模、高并發的事務處理請求.此外,分布式緩存在內存中管理事務并提供數據的一致性保障,采用數據復制技術實現高可用性,具有較優的擴展性與性能組合.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。