




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 分布式緩存的遷移方案 本文節(jié)選自即將出版的可伸縮服務(wù)架構(gòu):框架與中間件一書,作者:李艷鵬、楊彪、李海亮、賈博巖、劉淏。處理分布式緩存遷移是比較困難的,通常我們將其分為平滑遷移和停機(jī)遷移。這里講解通用的遷移方案,擴(kuò)容實(shí)際上是遷移的一種特殊案例,我們在下面學(xué)習(xí)的方案全部適用。我們會在講解該方案的過程中,以擴(kuò)容為例來說明相應(yīng)的步驟和實(shí)現(xiàn)細(xì)節(jié)。平滑遷移平滑遷移適合對可用性要求較高的場景,例如,線上的交易服務(wù)對緩存依賴較大,不能忍受停機(jī)帶來的業(yè)務(wù)損失,也沒有交易的低峰期,我們對此只能采用平滑遷移的方式。平滑遷移使用的是雙寫方案,方案分成4個步驟:雙寫、遷移歷史數(shù)據(jù)、切讀、下雙寫。這種方式還有一個變種,
2、就是不需要遷移老數(shù)據(jù),在第1步中雙寫后,在一定的時間里通過新規(guī)則對新緩存進(jìn)行寫入,新緩存已經(jīng)有了足夠的數(shù)據(jù),這樣我們就不用再遷移舊數(shù)據(jù),直接進(jìn)入第3步即可。首先,假設(shè)我們的應(yīng)用現(xiàn)在使用了具有兩個分片的緩存集群,通過關(guān)鍵字哈希的方式進(jìn)行路由,如圖4-19所示。圖4-19因為兩個分片已經(jīng)不能滿足緩存容量的需求,所以現(xiàn)在需要擴(kuò)容到4個分片,達(dá)到原來兩倍的緩存總大小,因此我們需要遷移。遷移的具體過程如下。第1步,雙寫。按照新規(guī)則和舊規(guī)則同時往新緩存和舊緩存中寫數(shù)據(jù),如圖4-20所示。圖4-20這里,我們?nèi)匀话凑张f的規(guī)則,也就是關(guān)鍵字哈希除以2取余來路由分片,同時按照新的規(guī)則,也就是關(guān)鍵字哈希除以4取余
3、來路由到新的4個分片上,來完成數(shù)據(jù)的雙寫。這個步驟有優(yōu)化的空間,因為是在成倍擴(kuò)容的場景下,所以我們不需要準(zhǔn)備4個全新的分片。新規(guī)則中前兩個分片的數(shù)據(jù),其實(shí)是舊規(guī)則中兩個分片數(shù)據(jù)的子集,并且規(guī)則一致,所以我們可以重用前兩個分片,也就是說一共需要兩個新的分片,用來處理關(guān)鍵字哈希取余后為2和3的情況;使用舊的緩存分片來處理關(guān)鍵字哈希取余后0和1的情況即可。如圖4-21所示。圖4-21第2步,遷移歷史數(shù)據(jù)。把舊緩存集群中的歷史數(shù)據(jù)讀取出來,按照新的規(guī)則寫到新的緩存集群中,如圖4-22所示。圖4-22在這個過程中,我們需要遷移歷史數(shù)據(jù),在遷移的過程中可能需要遷移工具,這也需要一部分開發(fā)工作量。在遷移后,
4、我們還需要對遷移的數(shù)據(jù)進(jìn)行驗證,表明我們的數(shù)據(jù)遷移成功。在某些應(yīng)用場景下,緩存數(shù)據(jù)并不是應(yīng)用強(qiáng)依賴的,在緩存里獲取不到數(shù)據(jù),可以回源到數(shù)據(jù)庫獲取,因此在這種場景下通過容量評估,數(shù)據(jù)庫可以承受回源導(dǎo)致的壓力增加,就可以避免遷移舊數(shù)據(jù)。在另一種場景下,緩存數(shù)據(jù)一般是具有時效性的,應(yīng)用在雙寫期間不斷向新的集群中寫入新數(shù)據(jù),歷史數(shù)據(jù)會逐漸過時,并被從舊的集群中刪除,在一定的時間流逝后,在新的集群中自然就有了最新的數(shù)據(jù),也就不再需要遷移歷史數(shù)據(jù)了,但是這需要進(jìn)行評估和驗證。第3步,切讀。把應(yīng)用層所有的讀操作路由到新的緩存集群上,如圖4-23所示。圖4-23這一步把應(yīng)用中讀取的操作的緩存數(shù)據(jù)源轉(zhuǎn)換成新的緩
5、存集群,這時應(yīng)用的讀寫操作已經(jīng)完全發(fā)生在新的數(shù)據(jù)庫集群上了。這一步一般不需要上線代碼,我們會在一開始上雙寫時就實(shí)現(xiàn)開關(guān)邏輯,這里只需要將讀的開關(guān)切換到新的集群即可。第4步,下線雙寫。把寫入舊的集群的邏輯下線,如圖4-24所示。圖4-24這一步通常是在雙寫和切讀后驗證沒有任何問題,并保證數(shù)據(jù)一致性的情況下,才把這部分代碼下線的。同時可以把舊的分片下線,如果是擴(kuò)容的場景,并且重用了舊的分片1和分片2,則還可以清理分片1和分片2中的冗余數(shù)據(jù)。停機(jī)遷移停機(jī)遷移的方法比較簡單,通常分為停止應(yīng)用、遷移歷史數(shù)據(jù)、更改應(yīng)用的數(shù)據(jù)源、啟動應(yīng)用這4個步驟,如圖4-25所示。圖4-25具體的遷移步驟如下。(1)停機(jī)應(yīng)用,先將應(yīng)用停止服務(wù)。(2)遷移歷史數(shù)據(jù),按照新的規(guī)則把歷史數(shù)據(jù)遷移到新的緩存集群中。(3)更改應(yīng)用的數(shù)據(jù)源配置,指向新的緩存集群。(4)重新啟動應(yīng)用。這種方式的好處是實(shí)現(xiàn)比較簡單、高效,能夠有效避免數(shù)據(jù)的不一致,但是需要由業(yè)務(wù)方評估影響,一般在晚上交易量比較小或者非核心服務(wù)的場景下比較適用。-本文節(jié)選自即將出版的可伸縮服務(wù)架構(gòu):框架與中間件一書,此書現(xiàn)已開放預(yù)售,可登錄網(wǎng)址:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 重陽節(jié)社區(qū)活動策劃
- 江門市第三屆職業(yè)技能大賽茶藝師項目職業(yè)技能競賽實(shí)施方案
- 銷售人員培訓(xùn)流程
- 浙江專用2024年高考生物二輪復(fù)習(xí)專題八生物技術(shù)實(shí)踐第17講微生物的利用與酶的應(yīng)用教案
- 交通行業(yè)文明服務(wù)
- 歷史部編版2024版七年級初一上冊第19課北朝政治和北方民族大交融教學(xué)教案教學(xué)設(shè)計03
- 環(huán)保板報-養(yǎng)成低碳生活習(xí)慣
- 班主任經(jīng)驗分享交流-《做一名有溫暖的班主任》
- 2025挖掘機(jī)買賣合同
- 鋒面知識點(diǎn)總結(jié)
- 云南省煙草買賣合同(標(biāo)準(zhǔn)版)
- 2023個人獨(dú)資企業(yè)清算報告(精選4篇)
- 詩詞大會訓(xùn)練題庫-十二宮格課件
- 衛(wèi)生統(tǒng)計學(xué)(全套課件)
- xx縣精神病醫(yī)院建設(shè)項目可行性研究報告
- 2021年6月浙江省高考讀后續(xù)寫課件-高考英語復(fù)習(xí)備考
- 小學(xué)古詩詞80首(硬筆書法田字格)
- 兒歌:媽媽過生日
- 《計算機(jī)網(wǎng)絡(luò)基礎(chǔ)》第1章計算機(jī)網(wǎng)絡(luò)概論
- 中國鴨飼養(yǎng)標(biāo)準(zhǔn)
評論
0/150
提交評論