版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
云計(jì)算環(huán)境下分布式緩存技術(shù)的現(xiàn)狀與挑戰(zhàn)
2024什么是云計(jì)算:云計(jì)算描述了一種新的基于互聯(lián)網(wǎng)的IT服務(wù)增值、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源,是數(shù)據(jù)共享與服務(wù)共享計(jì)算模式的結(jié)合體分布式緩存的引入:云計(jì)算環(huán)境下,為了應(yīng)對海量數(shù)據(jù)與用戶請求帶來的挑戰(zhàn),解決傳統(tǒng)數(shù)據(jù)庫面臨的大規(guī)模數(shù)據(jù)訪問瓶頸問題,分布式緩存技術(shù)得以引入,為用戶提供高性能、高可用、可伸縮的數(shù)據(jù)緩存服務(wù).分布式緩存拉近了對象與應(yīng)用間的距離,是云平臺提升應(yīng)用性能的一種重要手段前言一:分布式緩存概述1.1分布式緩存的特性1)高性能:當(dāng)傳統(tǒng)數(shù)據(jù)庫面臨大規(guī)模數(shù)據(jù)訪問時(shí),磁盤I/O往往成為性能瓶頸,從而導(dǎo)致過高的響應(yīng)延遲.分布式緩存將高速內(nèi)存作為數(shù)據(jù)對象的存儲介質(zhì),數(shù)據(jù)以key/value形式存儲,理想情況下可以獲得DRAM級的讀寫性能;2)動(dòng)態(tài)擴(kuò)展性:支持彈性擴(kuò)展,通過動(dòng)態(tài)增加或減少節(jié)點(diǎn)應(yīng)對變化的數(shù)據(jù)訪問負(fù)載,提供可預(yù)測的性能與擴(kuò)展性;同時(shí),最大限度地提高資源利用率;3)高可用性:可用性包含數(shù)據(jù)可用性與服務(wù)可用性兩方面.基于冗余機(jī)制實(shí)現(xiàn)高可用性,無單點(diǎn)失效(singlepointoffailure),支持故障的自動(dòng)發(fā)現(xiàn),透明地實(shí)施故障切換,不會(huì)因服務(wù)器故障而導(dǎo)致緩存服務(wù)中斷或數(shù)據(jù)丟失.動(dòng)態(tài)擴(kuò)展時(shí)自動(dòng)均衡數(shù)據(jù)分區(qū),同時(shí)保障緩存服務(wù)持續(xù)可用;4)易用性:提供單一的數(shù)據(jù)與管理視圖;API接口簡單,且與拓?fù)浣Y(jié)構(gòu)無關(guān);動(dòng)態(tài)擴(kuò)展或失效恢復(fù)時(shí)無需人工配置;自動(dòng)選取備份節(jié)點(diǎn);多數(shù)緩存系統(tǒng)提供了圖形化的管理控制臺,便于統(tǒng)一維護(hù);目前分布式緩存提供基于命令行(telnet登錄)和基于B/S的圖形化運(yùn)維方式。5)分布式代碼執(zhí)行(distributedcodeexecution):將任務(wù)代碼轉(zhuǎn)移到各數(shù)據(jù)節(jié)點(diǎn)并行執(zhí)行,客戶端聚合返回結(jié)果,從而有效避免了緩存數(shù)據(jù)的移動(dòng)與傳輸.最新的Java數(shù)據(jù)網(wǎng)格規(guī)范JSR-347[7]中加入了分布式代碼執(zhí)行與Map/reduce的API支持,各主流分布式緩存產(chǎn)品,如IBMWebSphereeXtremeScale,VMwareGemFire,GigaSpacesXAP和RedHatInfinispan等也都支持這一新的編程模型.1.2典型應(yīng)用場景分布式緩存的典型應(yīng)用場景可分為以下幾類:1)頁面緩存
用來緩存Web頁面的內(nèi)容片段,包括HTML、CSS和圖片等,多應(yīng)用于社交網(wǎng)站等;2)應(yīng)用對象緩存
緩存系統(tǒng)作為ORM框架的二級緩存對外提供服務(wù),目的是減輕數(shù)據(jù)庫的負(fù)載壓力,加速應(yīng)用訪問;3)狀態(tài)緩存
緩存包括Session會(huì)話狀態(tài)及應(yīng)用橫向擴(kuò)展時(shí)的狀態(tài)數(shù)據(jù)等,這類數(shù)據(jù)一般是難以恢復(fù)的,對可用性要求較高,多應(yīng)用于高可用集群;4)并行處理
通常涉及大量中間計(jì)算結(jié)果需要共享;5)事件處理
分布式緩存提供了針對事件流的連續(xù)查詢(continuousquery)處理技術(shù),滿足實(shí)時(shí)性需求;6)極限事務(wù)處理
分布式緩存為事務(wù)型應(yīng)用提供高吞吐率、低延時(shí)的解決方案,支持高并發(fā)事務(wù)請求處理,多應(yīng)用于鐵路、金融服務(wù)和電信等領(lǐng)域(如雙十二高峰).1.3分布式緩存的發(fā)展分布式緩存經(jīng)歷了多個(gè)發(fā)展階段,由最初的本地緩存到彈性緩存平臺直至彈性應(yīng)用平臺,目標(biāo)是朝著構(gòu)建更好的分布式系統(tǒng)方向發(fā)展。1)本地緩存:數(shù)據(jù)存儲在應(yīng)用代碼所在內(nèi)存空間.優(yōu)點(diǎn)是可以提供快速的數(shù)據(jù)訪問;缺點(diǎn)是數(shù)據(jù)無法分布式共享,無容錯(cuò)處理.典型的,如Cache4j(一個(gè)有簡單API與實(shí)現(xiàn)快速的Java對象緩存);2)分布式緩存系統(tǒng):數(shù)據(jù)在固定數(shù)目的集群節(jié)點(diǎn)間分布存儲.優(yōu)點(diǎn)是緩存容量可擴(kuò)展(靜態(tài)擴(kuò)展);缺點(diǎn)是擴(kuò)展過程中需要大量配置,無容錯(cuò)機(jī)制.典型的,如Memcached(一個(gè)高性能的分布式內(nèi)存對象緩存系統(tǒng));3)彈性緩存平臺:數(shù)據(jù)在集群節(jié)點(diǎn)間分布存儲,基于冗余機(jī)制實(shí)現(xiàn)高可用性.優(yōu)點(diǎn)是可動(dòng)態(tài)擴(kuò)展,具有容錯(cuò)能力;缺點(diǎn)是復(fù)制備份會(huì)對系統(tǒng)性能造成一定影響.典型的,如WindowsVelocity;4)彈性應(yīng)用平臺:彈性應(yīng)用平臺代表了云環(huán)境下分布式緩存系統(tǒng)未來的發(fā)展方向.簡單地講,彈性應(yīng)用平臺是彈性緩存與代碼執(zhí)行的組合體,將業(yè)務(wù)邏輯代碼轉(zhuǎn)移到數(shù)據(jù)所在節(jié)點(diǎn)執(zhí)行,可以極大地降低數(shù)據(jù)傳輸開銷,提升系統(tǒng)性能.典型的,如GigaSpacesXAP.1.4分布式緩存與NoSQL1,傳統(tǒng)數(shù)據(jù)庫的瓶頸:隨著web2.0時(shí)代的到來,由于大部分傳統(tǒng)數(shù)據(jù)庫都是IO密集型的,大數(shù)據(jù)量高并發(fā)的數(shù)據(jù)庫應(yīng)用使得開發(fā)越來越困難。2,NoSQL:NoSQL數(shù)據(jù)庫是沒有R的DBMS(即沒有關(guān)系的數(shù)據(jù)庫管理系統(tǒng)),一般也缺乏對事務(wù)和其他高級特性的支持。NoSQL更適合云環(huán)境下應(yīng)用數(shù)據(jù)的存儲需求,體現(xiàn)在以下幾個(gè)方面:1)根據(jù)CAP理論,一致性(consistency)、可用性(availability)和分區(qū)容錯(cuò)(partitiontolerance)這3個(gè)要素最多同時(shí)滿足兩個(gè),不可能三者兼顧.對云平臺中部署的大量Web應(yīng)用而言,數(shù)據(jù)可用性與分區(qū)容錯(cuò)的優(yōu)先級通常更高,所以一般會(huì)選擇適當(dāng)放松一致性約束.傳統(tǒng)數(shù)據(jù)庫的事務(wù)一致性需求制約了其橫向伸縮與高可用技術(shù)的實(shí)現(xiàn);2)傳統(tǒng)數(shù)據(jù)庫難以適應(yīng)新的數(shù)據(jù)存儲訪問模式.Web2.0站點(diǎn)以及云平臺中存在大量半結(jié)構(gòu)化數(shù)據(jù),如用戶Session數(shù)據(jù)、時(shí)間敏感的事務(wù)型數(shù)據(jù)、計(jì)算密集型任務(wù)數(shù)據(jù)等,這些狀態(tài)數(shù)據(jù)更適合以Key/Value形式存儲,不需要RDBMS提供的復(fù)雜的查詢與管理功能;3)NoSQL提供低延時(shí)的讀寫速度,支持水平擴(kuò)展,這些特性對擁有海量數(shù)據(jù)訪問請求的云平臺而言是至關(guān)重要的.傳統(tǒng)關(guān)系型數(shù)據(jù)無法提供同樣的性能,而內(nèi)存數(shù)據(jù)庫容量有限且不具備擴(kuò)展能力.分布式緩存作為NoSQL的一種重要實(shí)現(xiàn)形式,可為云平臺提供高可用的狀態(tài)存儲與可伸縮的應(yīng)用加速服務(wù),與其他NoSQL系統(tǒng)間并無清晰的界限.云平臺中應(yīng)用訪問與系統(tǒng)故障均具有不可預(yù)知性,為了更好地應(yīng)對這些挑戰(zhàn),應(yīng)用軟件在架構(gòu)時(shí)通常采用無狀態(tài)設(shè)計(jì),大量狀態(tài)信息不再由組件、容器或平臺來管理,而是直接交付給后端的分布式緩存服務(wù)或NoSQL系統(tǒng).1.5分布式緩存與極限事務(wù)處理隨著云計(jì)算與Web2.0的進(jìn)一步發(fā)展,許多企業(yè)或組織時(shí)常會(huì)面對空前的需求:百萬級的并發(fā)用戶訪問、每秒數(shù)以千計(jì)的并發(fā)事務(wù)處理、靈活的彈性與可伸縮性、低延時(shí)及7×24×365可用性等.傳統(tǒng)事務(wù)型應(yīng)用面臨極限規(guī)模的并發(fā)事務(wù)處理,出現(xiàn)了極限事務(wù)處理型應(yīng)用,典型的有鐵路售票系統(tǒng).Wikipedia認(rèn)為,極限事務(wù)處理是每秒多于500次事務(wù)或高于10000次并發(fā)訪問的事務(wù)處理。極限事務(wù)處理的引入,無疑給傳統(tǒng)Web三層架構(gòu)(表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL))帶來了新的挑戰(zhàn).即,如何在廉價(jià)的、標(biāo)準(zhǔn)化的硬件和軟件平臺之上,對大容量、業(yè)務(wù)關(guān)鍵型的事務(wù)處理應(yīng)用提供良好的支撐.分布式緩存作為一種關(guān)鍵的XTP技術(shù),可為事務(wù)型應(yīng)用提供高吞吐率、低延時(shí)的技術(shù)解決方案.其延遲寫(write-behind)機(jī)制可提供更短的響應(yīng)時(shí)間,同時(shí)極大地降低數(shù)據(jù)庫的事務(wù)處理負(fù)載,分階段事件驅(qū)動(dòng)架構(gòu)(stagedevent-drivenarchitecture)可以支持大規(guī)模、高并發(fā)的事務(wù)處理請求.此外,分布式緩存在內(nèi)存中管理事務(wù)并提供數(shù)據(jù)的一致性保障,采用數(shù)據(jù)復(fù)制技術(shù)實(shí)現(xiàn)高可用性,具有較優(yōu)的擴(kuò)展性與性能組合.1.6相關(guān)的標(biāo)準(zhǔn)規(guī)范主要有JSR-107與JSR-347。二:分布式緩存技術(shù)分析框架DctAF本文在深入分析云計(jì)算的特點(diǎn)和緩存技術(shù)邊界的基礎(chǔ)上,建立了云環(huán)境下分布式緩存技術(shù)的分析框架(distributedcachetechniquesanalysisframework,簡稱DctAF).該框架從6個(gè)維度對現(xiàn)有緩存技術(shù)進(jìn)行總結(jié)、比較與分析,這些維度分別對應(yīng)了云計(jì)算所關(guān)注的6個(gè)方面的內(nèi)容,同時(shí)也對應(yīng)了研究領(lǐng)域中需要重點(diǎn)解決的若干方面問題.涵蓋的6個(gè)分析維度如下所示:1)彈性資源供給(elasticity);2)可用性與可靠性(availabilityandreliability);3)敏捷性與自適應(yīng)性(agilityandadaptability);4)多承租(multi-tenancy);5)數(shù)據(jù)管理(datamanagement);6)數(shù)據(jù)安全與隱私防護(hù)(security,privacyandcompliance).2.1彈性資源供給彈性供給作為云計(jì)算的重要特征,是指在滿足用戶服務(wù)水平協(xié)議(SLA)的前提下,依據(jù)外界環(huán)境的變化動(dòng)態(tài)調(diào)整緩存資源分配,實(shí)現(xiàn)資源的優(yōu)化利用和按需供給.根據(jù)資源容量變化與否將該維度進(jìn)一步細(xì)化為動(dòng)態(tài)擴(kuò)展和負(fù)載均衡兩個(gè)分析側(cè)面,這兩個(gè)側(cè)面分別從橫向(應(yīng)用實(shí)例的數(shù)量)和縱向(實(shí)例大小,以便維持資源)維度實(shí)現(xiàn)彈性資源供給.而數(shù)據(jù)遷移則是彈性供給的支撐技術(shù).動(dòng)態(tài)擴(kuò)展:在線增加或刪除節(jié)點(diǎn)以實(shí)現(xiàn)緩存容量的調(diào)整,同時(shí)保障服務(wù)持續(xù)可用.容量規(guī)劃(capacityplanning)為彈性供給提供支持,其目標(biāo)是確定初始和調(diào)整后的緩存容量和節(jié)點(diǎn)數(shù).由于數(shù)據(jù)訪問的規(guī)模與模式具有時(shí)變性,導(dǎo)致某些緩存節(jié)點(diǎn)成為瓶頸并制約整個(gè)系統(tǒng)的吞吐量.負(fù)載均衡:目標(biāo)是使緩存數(shù)據(jù)與訪問負(fù)載在節(jié)點(diǎn)間盡可能地均勻分布,包含客戶端均衡與服務(wù)端均衡兩種實(shí)現(xiàn)方法,對系統(tǒng)性能短板的消除及服務(wù)質(zhì)量保障等具有重要作用.數(shù)據(jù)遷移:實(shí)現(xiàn)節(jié)點(diǎn)動(dòng)態(tài)擴(kuò)展與負(fù)載均衡的關(guān)鍵技術(shù).目前,多數(shù)分布式緩存支持在線數(shù)據(jù)遷移,但遷移時(shí)缺乏對熱點(diǎn)數(shù)據(jù)的均衡處理.數(shù)據(jù)遷移包括制定遷移計(jì)劃(migrationplan)、路由信息同步、用戶請求轉(zhuǎn)發(fā)及數(shù)據(jù)一致性管理等核心內(nèi)容.需要指出的是,數(shù)據(jù)遷移過程中伴隨的大量狀態(tài)同步會(huì)給系統(tǒng)性能帶來一定影響,因此,如何有效降低遷移開銷是需要著力解決的問題.2.2可用性與可靠性可用性:分布式緩存通常采用冗余機(jī)制實(shí)現(xiàn)高可用,相關(guān)技術(shù)包括復(fù)制與熱
備.復(fù)制技術(shù)主要針對緩存數(shù)據(jù)的可用性,粒度較細(xì);而熱備則主要
針對關(guān)鍵節(jié)點(diǎn)的可用性,粒度較粗??捎眯酝瑫r(shí)強(qiáng)調(diào)冗余機(jī)制不能
引入較大的性能開銷。復(fù)制技術(shù)中,每個(gè)節(jié)點(diǎn)的緩存數(shù)據(jù)以同步或異步復(fù)制方式備份至其他緩存節(jié)點(diǎn),備份數(shù)一般是用戶可配置的.當(dāng)出現(xiàn)節(jié)點(diǎn)失效時(shí),系統(tǒng)可以自動(dòng)實(shí)施故障切換,將用戶請求透明地遷移至備份節(jié)點(diǎn),同時(shí)將緩存數(shù)據(jù)在節(jié)點(diǎn)間重新分布.分布式緩存中可能會(huì)存在某些關(guān)鍵服務(wù)節(jié)點(diǎn)(如配置服務(wù)器等),這些節(jié)點(diǎn)對緩存集群的運(yùn)行起著至關(guān)重要的作用.為保障其可用性,通常采用熱備技術(shù)為關(guān)鍵服務(wù)節(jié)點(diǎn)配置若干備份服務(wù)器,當(dāng)主服務(wù)器失效時(shí),備份服務(wù)器自動(dòng)接管其服務(wù).可靠性:描述了緩存在規(guī)定的任務(wù)時(shí)間內(nèi)無故障運(yùn)行的可能性,相關(guān)技術(shù)包括成員關(guān)系維護(hù)與失效檢測、數(shù)據(jù)持久化,前者主要從緩存節(jié)點(diǎn)的可靠性角度出發(fā),而后者則主要從數(shù)據(jù)可靠性角度出發(fā).成員關(guān)系維護(hù)與失效檢測是分布式緩存重要的可靠性保障技術(shù),支持協(xié)議包括Gossip,Jgroups和HeartBeat等.Gossip協(xié)議中,每個(gè)節(jié)點(diǎn)周期性地隨機(jī)選取節(jié)點(diǎn)進(jìn)行消息通信,收到消息的節(jié)點(diǎn)重復(fù)該過程,直至消息擴(kuò)散到所有節(jié)點(diǎn).該協(xié)議在大型、異構(gòu)、動(dòng)態(tài)變化的網(wǎng)絡(luò)環(huán)境中具有良好的魯棒性,其不足是占用內(nèi)存資源較多,收斂時(shí)間長,啟動(dòng)延遲大.Jgroups提供了靈活可定制的協(xié)議棧,其通信協(xié)議包括UDP(IPmulticast)、TCP和JMS.Jgroups支持消息重傳、大消息拆分和同序消息接收等,用戶可靈活配置協(xié)議棧以滿足個(gè)性化需求.HeartBeat協(xié)議采用心跳消息表征節(jié)點(diǎn)的健康狀態(tài),如果某一節(jié)點(diǎn)的心跳消息超過一定周期未被收到,則該節(jié)點(diǎn)會(huì)被標(biāo)記為失效節(jié)點(diǎn).數(shù)據(jù)持久化技術(shù)可以有效防止緩存服務(wù)器重啟或整個(gè)集群失效而導(dǎo)致的數(shù)據(jù)丟失(主要針對關(guān)鍵業(yè)務(wù)數(shù)據(jù)或狀態(tài)數(shù)據(jù)).緩存對象被定期同步至磁盤中,服務(wù)器重啟后,磁盤中的數(shù)據(jù)可以重新被激活并被使用.持久化技術(shù)的另一個(gè)應(yīng)用場景是應(yīng)對節(jié)點(diǎn)內(nèi)存空間不足.傳統(tǒng)分布式緩存一般會(huì)利用替換算法直接將對象替換出內(nèi)存,造成數(shù)據(jù)丟失.為了保障應(yīng)用狀態(tài)存儲的可靠性,以Couchbase為代表的部分緩存產(chǎn)品提供了異步持久化功能,將超出節(jié)點(diǎn)內(nèi)存容量的數(shù)據(jù)保存至磁盤.Gossip協(xié)議:是一系列用于P2P的通信協(xié)議。簡單來說,就是模擬人類社會(huì)中流言傳播的方式。每個(gè)節(jié)點(diǎn)隨機(jī)地把消息發(fā)給它的鄰居,接到消息的節(jié)點(diǎn),如果之前沒收到這個(gè)消息,則會(huì)繼續(xù)隨機(jī)地轉(zhuǎn)發(fā)給它的鄰居,否則不轉(zhuǎn)發(fā)。理論復(fù)雜度是O(lgn),n是集群的規(guī)模。2.3敏捷性與自適應(yīng)性云計(jì)算具有開放、動(dòng)態(tài)和多變等特點(diǎn),這些特點(diǎn)決定了分布式緩存需要具有敏捷性、主動(dòng)性和自適應(yīng)性.敏捷性與自適應(yīng)性描述了系統(tǒng)依照內(nèi)、外部環(huán)境的變化(如請求數(shù)據(jù)量、讀寫比例等)及時(shí)做出響應(yīng)和調(diào)整的能力,該維度與彈性資源供給維度有著緊密的關(guān)聯(lián).深入分析不同緩存策略的特點(diǎn)和適用場景,對自適應(yīng)機(jī)制的實(shí)施具有重要意義.根據(jù)策略目標(biāo)的不同,可將緩存策略進(jìn)一步細(xì)化為若干個(gè)維度,如拓?fù)浣Y(jié)構(gòu)、緩存替換算法和數(shù)據(jù)一致性策略等,本文主要選取前兩個(gè)維度進(jìn)行分析.從拓?fù)浣Y(jié)構(gòu)角度劃分,現(xiàn)有緩存策略主要有3種:全復(fù)制(replicated)策略分區(qū)(partitioned)策略近區(qū)策略(near策略)全復(fù)制(replicated)策略全復(fù)制策略中,數(shù)據(jù)寫入和更新復(fù)制到所有緩存節(jié)點(diǎn),最終,每個(gè)節(jié)點(diǎn)都有一份完整的數(shù)據(jù)拷貝,該策略的優(yōu)點(diǎn)是本地讀取數(shù)據(jù)、響應(yīng)延遲低、提供最高級的可用性支持,缺點(diǎn)是內(nèi)存占用率高,通信開銷大,由于數(shù)據(jù)被復(fù)制到所有服務(wù)器,增加服務(wù)器不會(huì)增加總緩存容量適用于緩存數(shù)據(jù)量小或讀請求較多的場景分區(qū)(partitioned)策略特點(diǎn):分區(qū):一個(gè)分布式緩存中的數(shù)據(jù)分散在所有的服務(wù)器中,并且沒有任何兩個(gè)服務(wù)器的緩存對同一塊數(shù)據(jù)負(fù)責(zé)。緩存的大小和緩存管理的處理能力隨著簇的變大而呈線性增大。此外,它是指對在高速緩存中的數(shù)據(jù)的操作,只需要完成一次跳躍,即涉及至多一個(gè)其他服務(wù)器。負(fù)載平衡:由于數(shù)據(jù)分布均勻的服務(wù)器,用于管理數(shù)據(jù)的責(zé)任是自動(dòng)負(fù)載平衡整個(gè)群集。位置透明性:雖然數(shù)據(jù)分布在集群節(jié)點(diǎn),但可以使用相同的API來訪問數(shù)據(jù)。這意味著,開發(fā)人員用使用專門的語言來設(shè)計(jì)基于分區(qū)策略的緩存,因?yàn)锳PI和它的行為與本地Cache是相同的。故障轉(zhuǎn)移:所有連貫性的服務(wù)提供故障轉(zhuǎn)移和故障恢復(fù),而不會(huì)丟失任何數(shù)據(jù),這包括分布式緩存服務(wù)。分布式緩存服務(wù)允許配置的備份,如果備份的數(shù)量是1或更高,任何群集節(jié)點(diǎn)發(fā)生故障也不會(huì)丟失的數(shù)據(jù)。缺點(diǎn):數(shù)據(jù)訪問包含遠(yuǎn)程操作,訪問速度不及全復(fù)制策略。如有圖,分區(qū)策略中的讀數(shù)據(jù)操作寫數(shù)據(jù)操作:如有圖,任何一個(gè)服務(wù)器負(fù)責(zé)的數(shù)據(jù)都不相同,備份數(shù)目越多,系統(tǒng)越可靠分區(qū)策略中的故障轉(zhuǎn)移:如右圖所示,如果存在多個(gè)級別的備份,那么第一備份將替代丟失節(jié)點(diǎn),第二備份成為第一備份。近區(qū)策略(near策略)近區(qū)策略在分區(qū)策略的基礎(chǔ)上增加了一個(gè)容量較小的前端緩存,用來加速熱點(diǎn)數(shù)據(jù)訪問.用戶請求對象時(shí),可從前端緩存中無延遲加載,加載不到會(huì)自動(dòng)從后端緩存加載.后端緩存容量較大,但訪問速度不及前端緩存.適用于大量熱點(diǎn)數(shù)據(jù)訪問或讀較多的場景.當(dāng)數(shù)據(jù)更新操作頻繁時(shí),緩存間同步開銷較大,不建議使用該策略2.4多租戶技術(shù)是一種軟件架構(gòu)技術(shù),它是在探討與實(shí)現(xiàn)如何于多用戶的環(huán)境下共用相同的系統(tǒng)或程序組件,并且仍可確保各用戶間數(shù)據(jù)的隔離性?;舅枷胧?宿主在某一服務(wù)層上的一個(gè)或多個(gè)服務(wù)實(shí)例為來自不同組織(租戶)的并發(fā)用戶請求提供服務(wù),實(shí)現(xiàn)資源的共享使用,目的是提高資源利用率,降低均攤在每個(gè)租戶上的基礎(chǔ)設(shè)施與管理成本.VM-租戶模式:服務(wù)器硬件被劃分為若干VM實(shí)例,每個(gè)VM實(shí)例運(yùn)行一個(gè)緩存節(jié)點(diǎn),每個(gè)緩存節(jié)點(diǎn)承載一個(gè)租戶應(yīng)用的部分或全部數(shù)據(jù),典型的,如AmazonElastiCache.進(jìn)程-租戶模式:每個(gè)VM實(shí)例運(yùn)行多個(gè)緩存節(jié)點(diǎn),每個(gè)緩存節(jié)點(diǎn)為一個(gè)租戶應(yīng)用服務(wù),典型的,如Gigaspaces.應(yīng)用實(shí)例-租戶模式:每個(gè)VM實(shí)例運(yùn)行一個(gè)緩存點(diǎn),該節(jié)點(diǎn)承載了多個(gè)租戶應(yīng)用的緩存數(shù)據(jù).Couchbase基于相互隔離的數(shù)據(jù)桶(bucket),允許租戶配置不同的端口采用授權(quán)機(jī)制訪問各自的緩存數(shù)據(jù).相比前兩種租戶模式,應(yīng)用實(shí)例-租戶模式采用線程級的資源管理機(jī)制,共享程度高,但難以精確隔離和有效調(diào)度底層物理資源,租戶間性能隔離與安全隔離面臨更多挑戰(zhàn).2.5數(shù)據(jù)管理2.5.1數(shù)據(jù)訪問模式預(yù)留緩存(cache-aside):應(yīng)用負(fù)責(zé)從數(shù)據(jù)庫讀取或?qū)懭霐?shù)據(jù),緩存系統(tǒng)不直接與數(shù)據(jù)庫交互,交互有應(yīng)用控制并且保持緩存與數(shù)據(jù)庫同步。該模式的優(yōu)點(diǎn)在于開發(fā)者擁有對數(shù)據(jù)訪問的完全控制,緩存機(jī)制的實(shí)現(xiàn)與應(yīng)用解耦;缺點(diǎn)在于數(shù)據(jù)網(wǎng)格的特性難以使用通讀(read-through):當(dāng)應(yīng)用請求的對象未存在于緩存時(shí),緩存自動(dòng)地從數(shù)據(jù)庫中加載.該模式的優(yōu)點(diǎn)在于緩存自動(dòng)處理并發(fā)數(shù)據(jù)訪問,可有效降低數(shù)據(jù)庫訪問壓力,同時(shí)簡化了應(yīng)用程序代碼;缺點(diǎn)在于請求對象僅能以key而非SQL查詢的形式從數(shù)據(jù)庫中加載,性能不及預(yù)刷新3)通寫(write-through):緩存負(fù)責(zé)將對象更新同步至數(shù)據(jù)庫中,該模式的優(yōu)點(diǎn)在于數(shù)據(jù)庫發(fā)生錯(cuò)誤時(shí),更新請求可回滾;其缺點(diǎn)在于寫性能及擴(kuò)展性受數(shù)據(jù)庫制約3)預(yù)刷新(refresh-ahead):緩存根據(jù)配置好的預(yù)刷新時(shí)間,在對象過期前自動(dòng)、異步地從數(shù)據(jù)源中加載數(shù)據(jù).與通讀模式相比,該模式延長了熱點(diǎn)數(shù)據(jù)的生命周期,有效降低了響應(yīng)時(shí)間;但其獲益的多少取決于對象訪問預(yù)測的準(zhǔn)確度.準(zhǔn)確度越低,對系統(tǒng)吞吐率影響越大(大量不必要的請求到達(dá)數(shù)據(jù)庫)5)延遲寫(write-behind):對象更新
請求被放入執(zhí)行隊(duì)列中,超過指定
的時(shí)間間隔后異步寫入數(shù)據(jù)庫.該
模式的優(yōu)點(diǎn)主要有:1提升了應(yīng)用
性能,用戶不再需要等待數(shù)據(jù)寫入
數(shù)據(jù)庫中;2極大地降低了數(shù)據(jù)庫
的訪問壓力,對同一對象的多次更
新操作可以合并.此外,對不同對
象的操作也可以組合為一個(gè)單一
的數(shù)據(jù)庫事務(wù),使得開銷較大的寫
操作次數(shù)得以減少;3應(yīng)用的執(zhí)行
不受數(shù)據(jù)庫失效的影響;4提供線
性的擴(kuò)展性(linearscalability)
其缺點(diǎn)在于:1未對執(zhí)行隊(duì)列中的
對象更新請求提供持久化支持;(2)
整個(gè)集群失效時(shí)會(huì)產(chǎn)生數(shù)據(jù)丟失2.5.2數(shù)據(jù)一致性復(fù)制技術(shù)的主要目標(biāo)是提高可用性,同時(shí)可通過創(chuàng)建數(shù)據(jù)副本均衡節(jié)點(diǎn)負(fù)載、提升系統(tǒng)性能.從復(fù)制模式角度可將復(fù)制技術(shù)分為主從復(fù)制(primary-backupreplication)和多主復(fù)制(multiple-masterreplication).主從復(fù)制中,讀寫操作均在主副本執(zhí)行,對主副本的更新被轉(zhuǎn)發(fā)至從副本;多主復(fù)制則允許任何副本執(zhí)行讀寫操作,每個(gè)副本將更新轉(zhuǎn)發(fā)至其他副本.復(fù)制技術(shù)從時(shí)間維度又可分為同步復(fù)制和異步復(fù)制.同步復(fù)制中,客戶端需要等待復(fù)制操作全部完成才能得到響應(yīng),性能開銷大,但可以保障即時(shí)一致性;異步復(fù)制不必等待復(fù)制操作完成即可返回結(jié)果,性能和擴(kuò)展性較優(yōu),可以保障數(shù)據(jù)的最終一致性,但卻犧牲了即時(shí)一致性,這意味著應(yīng)用可能會(huì)在某一時(shí)刻讀取到不一致數(shù)據(jù).
Quorum協(xié)議是一種應(yīng)用于Quorum系統(tǒng)的數(shù)據(jù)副本控制協(xié)議,該協(xié)議存在3個(gè)關(guān)鍵參數(shù):N,R和W,N表示復(fù)制因子,R和W分別表示成功執(zhí)行一次讀、寫操作所需要的最少節(jié)點(diǎn)數(shù).滿足R+W>N可以保障數(shù)據(jù)訪問的強(qiáng)一致性.用戶可以對R,W值進(jìn)行設(shè)置,并合理權(quán)衡性能、可用性與數(shù)據(jù)一致性需求.較低的R,W值意味著低響應(yīng)延遲,但同時(shí)引入了數(shù)據(jù)不一致性的風(fēng)險(xiǎn)(無法保證所有副本均寫入成功);較高的R,W值意味著較強(qiáng)的數(shù)據(jù)一致性,但會(huì)降低系統(tǒng)性能.因此,需要兼顧多方面需求,合理設(shè)置R,W值.2.5.3數(shù)據(jù)分區(qū)數(shù)據(jù)分區(qū)負(fù)責(zé)將數(shù)據(jù)均勻存儲至緩存服務(wù)器節(jié)點(diǎn),目前最流行的數(shù)據(jù)分區(qū)算法是一致性哈希(consistenthashing)及其改進(jìn)算法.一致性哈希的基本思想是,將哈希函數(shù)的輸出定義為一個(gè)哈希環(huán),緩存數(shù)據(jù)項(xiàng)的鍵值被映射到哈希環(huán)上的某個(gè)位置,沿順時(shí)針方向找到的第1個(gè)服務(wù)器節(jié)點(diǎn)即是存放該數(shù)據(jù)項(xiàng)的目標(biāo)節(jié)點(diǎn).一致性哈希算法很大限度上降低了節(jié)點(diǎn)變化對數(shù)據(jù)分區(qū)造成的影響,然而,該算法在數(shù)據(jù)均衡分布及應(yīng)對非均勻訪問方面仍存在較大的不足.Amazon于2007年提出了一種改進(jìn)的一致性哈希,該算法旨在提升數(shù)據(jù)的均勻分布,并增加對異構(gòu)節(jié)點(diǎn)的支持.其基本思想是,將整個(gè)哈??臻g分為若干等大小的Q份數(shù)據(jù)分區(qū)(也稱為虛擬節(jié)點(diǎn),Q>>N,N為緩存節(jié)點(diǎn)數(shù)),每個(gè)緩存節(jié)點(diǎn)依據(jù)其處理能力分配不同數(shù)量的數(shù)據(jù)分區(qū).客戶端采用二次哈希映射定位數(shù)據(jù)項(xiàng).具體來講:首先,key值經(jīng)哈希函數(shù)映射至環(huán)上的某個(gè)位置記為token;然后,token值再次被哈希映射為某一分區(qū)標(biāo)識.得到分區(qū)標(biāo)識后,客戶端從分區(qū)服務(wù)器映射表中查詢得到存放該數(shù)據(jù)分區(qū)的緩存節(jié)點(diǎn).HastorunD,JampaniM,KakulapatiG,PilchinA,SivasubramanianS,VosshallP,VogelsW.Dynamo:Amazon’shighlyavailablekey-valuestore.In:Proc.oftheACMSymp.onOperatingSystemsPrinciples(SOSP2007).2007.205?220.[doi:10.1145/1323293.1294281]2.5.4數(shù)據(jù)路由在客戶端驅(qū)動(dòng)的數(shù)據(jù)路由中,客戶端基于哈希算法將用戶請求直接定位至
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025云南昆明市呈貢區(qū)城市投資集團(tuán)有限公司及下屬子公司第二批員工崗招聘11人備考筆試試題及答案解析
- 2025重慶酉陽自治縣城區(qū)事業(yè)單位公開遴選34人模擬筆試試題及答案解析
- 2025浙江溫州甌海區(qū)第二人民醫(yī)院(仙巖)面向社會(huì)招聘執(zhí)業(yè)醫(yī)師、護(hù)士參考筆試題庫附答案解析
- 2025年福建省人資集團(tuán)漳州地區(qū)招聘2人參考考試試題及答案解析
- 2025湖南省演出公司招聘2人模擬筆試試題及答案解析
- 深度解析(2026)GBT 26342-2024深度解析(2026)《國際間遺體轉(zhuǎn)運(yùn) 棺柩》
- 深度解析(2026)《GBT 26049-2010銀包銅粉》(2026年)深度解析
- 2025中國農(nóng)業(yè)大學(xué)水利與土木工程學(xué)院科研助理招聘1人備考筆試題庫及答案解析
- 2025河南城發(fā)水務(wù)(長垣市)有限公司招聘6人考試筆試模擬試題及答案解析
- 2025廣東中山市板芙鎮(zhèn)招聘公辦中小學(xué)校臨聘教師1人模擬筆試試題及答案解析
- 孤獨(dú)癥譜系障礙的神經(jīng)發(fā)育軌跡研究
- 2025年跨境電商運(yùn)營營銷推廣考試題庫及答案
- 2025年12月長沙縣第二人民醫(yī)院公開招聘編外專業(yè)技術(shù)人員4人筆試考試備考試題及答案解析
- 2023鐵路通信承載網(wǎng)工程檢測規(guī)程
- 廣東省領(lǐng)航高中聯(lián)盟2025-2026學(xué)年高三上學(xué)期12月聯(lián)考生物試卷(含答案)
- 生態(tài)系統(tǒng)優(yōu)化方案
- 分布式光伏協(xié)議合同
- 【2025年】熔化焊接與熱切割操作證考試題庫及答案
- 2025年檢察院書記員面試真題及答案解析
- 石材購買意向合同(標(biāo)準(zhǔn)版)
- 小學(xué)四年級上冊口算練習(xí)題500道(A4打印版)
評論
0/150
提交評論