版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 數(shù)據(jù)庫(kù)從主備到主主的高可用方案設(shè)計(jì)目 錄 TOC o 1-3 h z u HYPERLINK l _Toc526839700 1.前言 PAGEREF _Toc526839700 h 3 HYPERLINK l _Toc526839701 1.一主一備的架構(gòu)(主備式) PAGEREF _Toc526839701 h 3 HYPERLINK l _Toc526839702 2.一主一從的架構(gòu)(主從式) PAGEREF _Toc526839702 h 4 HYPERLINK l _Toc526839703 3.互為主從的架構(gòu)(主主式) PAGEREF _Toc526839703 h 7前言在互聯(lián)
2、網(wǎng)項(xiàng)目中,當(dāng)業(yè)務(wù)規(guī)模越來(lái)越大,數(shù)據(jù)越來(lái)越多,隨之而來(lái)的就是數(shù)據(jù)庫(kù)壓力會(huì)越來(lái)越大。慢慢就會(huì)發(fā)現(xiàn),數(shù)據(jù)庫(kù)層可能已經(jīng)成為了整個(gè)系統(tǒng)的關(guān)鍵點(diǎn)和性能瓶頸了,因此實(shí)現(xiàn)數(shù)據(jù)層的高可用就成為了我們項(xiàng)目中經(jīng)常要解決的問(wèn)題。本文介紹如何實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)層的高可用方案。在保障數(shù)據(jù)層的高性能與高穩(wěn)定方面,最容易想到的方式就是對(duì)數(shù)據(jù)進(jìn)行分片、多份、冗余等,很多架構(gòu)的本質(zhì)其實(shí)也是基于這幾點(diǎn)來(lái)實(shí)現(xiàn)的。這里先不看細(xì)節(jié),即先不管底層數(shù)據(jù)源是什么數(shù)據(jù)庫(kù),我們先只聊架構(gòu)方案,因?yàn)闊o(wú)論底層是關(guān)系型數(shù)據(jù)庫(kù),還是NoSQL數(shù)據(jù)庫(kù),無(wú)論是 Mysql 還是 Redis、MongoDB,我們?cè)诩軜?gòu)設(shè)計(jì)上都是相通的。大體上,單中心雙機(jī)的常見(jiàn)方案有
3、以下這些:一主一備的架構(gòu)(主備式)一主一從的架構(gòu)(主從式)互為主從的架構(gòu)(主主式)以上方案從上至下,依次是從簡(jiǎn)單到復(fù)雜,從基礎(chǔ)到豐富。下面我們來(lái)具體看看:一主一備的架構(gòu)(主備式) 主備式架構(gòu)是雙機(jī)部署中最簡(jiǎn)單的一種架構(gòu)了,幾乎市面上所有的數(shù)據(jù)庫(kù)系統(tǒng)都會(huì)自帶這個(gè)主備功能。如圖,其思路也特別的簡(jiǎn)單:將數(shù)據(jù)庫(kù)部署到兩臺(tái)機(jī)器,其中一臺(tái)機(jī)器(代號(hào)A)作為日常提供數(shù)據(jù)讀寫服務(wù)的機(jī)器,稱為主機(jī)。另外一臺(tái)機(jī)器(代號(hào)B)并不提供線上服務(wù),但會(huì)實(shí)時(shí)的將主機(jī)的數(shù)據(jù)同步過(guò)來(lái),稱為備機(jī)。一旦主機(jī)出了故障,通過(guò)人工的方式,手動(dòng)的將主機(jī)踢下線,將備機(jī)改為主機(jī)來(lái)繼續(xù)提供服務(wù)。這個(gè)架構(gòu)的優(yōu)缺點(diǎn)都很明顯,優(yōu)點(diǎn)就是幾乎不需要做什么
4、開(kāi)發(fā)改造,各類數(shù)據(jù)庫(kù)就支持這種模式,部署維護(hù)起來(lái)也簡(jiǎn)單,并沒(méi)有引入額外的系統(tǒng)復(fù)雜度和瓶頸。但是缺點(diǎn)呢,就是當(dāng)主機(jī)出現(xiàn)故障的時(shí)候,需要人工去干預(yù)啊,運(yùn)維同學(xué)很辛苦的,而且處理還不一定及時(shí)。再還有一個(gè)缺點(diǎn)就是,主備架構(gòu)會(huì)造成嚴(yán)重浪費(fèi)資源,畢竟需要一臺(tái)與主機(jī)同等配置的備機(jī)長(zhǎng)期備著,但又不作為線上服務(wù)來(lái)使用,你說(shuō)浪費(fèi)不浪費(fèi)。為了解決這個(gè)資源浪費(fèi)問(wèn)題,我們就得想一個(gè)把備機(jī)也用起來(lái)的方案:主從式架構(gòu)。一主一從的架構(gòu)(主從式) 主從式架構(gòu)大體上與上述的主備式架構(gòu)差不多。區(qū)別就是主備式的備機(jī)平時(shí)是不干活的的,主要起到備份的作用。而主從式的備機(jī)改為了從機(jī),平時(shí)也要提供服務(wù),跟主機(jī)一樣隨時(shí)隨刻的在干活的。如圖,主
5、從式架構(gòu)中的從機(jī)雖然也在隨時(shí)隨刻提供服務(wù),但是它只提供讀服務(wù),并不提供寫服務(wù)。主機(jī)會(huì)實(shí)時(shí)的將線上數(shù)據(jù)同步到從機(jī),以保證從機(jī)能夠正常的提供讀操作。這種架構(gòu)相比較主備式,對(duì)資源是一種節(jié)約,畢竟從機(jī)也在提供服務(wù),沒(méi)有白白的浪費(fèi)。并且在主機(jī)出現(xiàn)故障時(shí),在人工介入之前,好歹從機(jī)也是能夠提供數(shù)據(jù)的讀操作的,畢竟大多數(shù)業(yè)務(wù)都是讀多寫少,因此對(duì)穩(wěn)定性又提高了一個(gè)層次。缺點(diǎn)就是架構(gòu)稍微復(fù)雜了一點(diǎn),畢竟主機(jī)和從機(jī)都有讀服務(wù),那么前端業(yè)務(wù)系統(tǒng)就需要用一定策略去判斷該路由到哪一臺(tái)去讀取數(shù)據(jù)。還有就是,延遲問(wèn)題,主機(jī)的數(shù)據(jù)同步到從機(jī)難免會(huì)有一定程度的延遲,這個(gè)延遲可能會(huì)對(duì)數(shù)據(jù)實(shí)時(shí)性要求較高的業(yè)務(wù)有一定影響。通過(guò)上面內(nèi)容
6、可以看到,雖然這個(gè)架構(gòu)一定程度解決了資源浪費(fèi),但并沒(méi)有解決人工干預(yù)的問(wèn)題,當(dāng)出現(xiàn)了故障后還是需要人工去處理。如果想讓架構(gòu)更智能一點(diǎn),那么我們就需要引入主從雙機(jī)自動(dòng)切換的功能。主從雙機(jī)自動(dòng)切換:是指當(dāng)主機(jī)出現(xiàn)故障后,從機(jī)能夠自動(dòng)檢測(cè)發(fā)現(xiàn)。同時(shí)從機(jī)將自己迅速切換為主機(jī),將原來(lái)的主機(jī)立即下線服務(wù),或轉(zhuǎn)換為從機(jī)狀態(tài)。要實(shí)現(xiàn)主從雙機(jī)自動(dòng)切換,有幾個(gè)關(guān)鍵點(diǎn)需要考慮:主機(jī)與從機(jī)之間的狀態(tài)如何判斷? 必須有一個(gè)機(jī)制能監(jiān)測(cè)兩臺(tái)機(jī)器的運(yùn)行狀態(tài),以此來(lái)決定是否應(yīng)該切換。我們比較常用的狀態(tài)傳遞方式有兩種:雙機(jī)互連模式第三方中介模式雙機(jī)互連模式:是指在主機(jī)和從機(jī)之間建立一條用于狀態(tài)通訊的通道。通過(guò)這個(gè)通道,主機(jī)和從機(jī)之
7、間可以共享服務(wù)狀態(tài),一旦發(fā)現(xiàn)對(duì)方宕機(jī)或者停止服務(wù)了,就可以立即將自己切換為主服務(wù)。不過(guò)這種方式需要關(guān)注通道的健壯性,一旦通道自身不穩(wěn)定了,可能會(huì)導(dǎo)致假消息出現(xiàn),比如主機(jī)并沒(méi)有宕機(jī),但是通道壞了,導(dǎo)致從機(jī)以為出現(xiàn)了異常,就將自己切換為了主機(jī),那就出現(xiàn)了2個(gè)主機(jī)了,因此通道本身也是一個(gè)可能的故障點(diǎn)。第三方中介模式:是指在主機(jī)和從機(jī)之外,再建立一個(gè)中介機(jī)器,這個(gè)中介機(jī)器專門用來(lái)維護(hù)各節(jié)點(diǎn)(主機(jī)/從機(jī))狀態(tài)的,主機(jī)/從機(jī)實(shí)時(shí)的將自身狀態(tài)上報(bào)給中介機(jī)器,中介機(jī)器來(lái)決定是否應(yīng)該切換、何時(shí)切換。MongoDB的Replica Set就是采用的這種模式。除了狀態(tài)判斷,還需要考慮切換的策略是什么? 也就是說(shuō)發(fā)生
8、異常幾次/多久后開(kāi)始切換,是否有一個(gè)緩沖機(jī)制等。另外切換完成后,當(dāng)原主機(jī)又恢復(fù)正常之后是否需要自動(dòng)再切換回來(lái)等策略。另外就是需要注意在切換過(guò)程中雙機(jī)數(shù)據(jù)如果發(fā)生沖突時(shí),以哪個(gè)為準(zhǔn)?處理機(jī)制是什么。這些細(xì)節(jié)都是在設(shè)計(jì)主從自動(dòng)切換架構(gòu)時(shí)候,要提前規(guī)劃的。互為主從的架構(gòu)(主主式) 互為主從的架構(gòu)是指兩臺(tái)機(jī)器自己都是主機(jī),并且也都是作為對(duì)方的從機(jī)。兩臺(tái)機(jī)器都提供完整的讀寫服務(wù),因此無(wú)需切換,客戶機(jī)在調(diào)用的時(shí)候隨機(jī)挑選一臺(tái)即可,當(dāng)其中一臺(tái)宕機(jī),另外一臺(tái)還可以繼續(xù)服務(wù)。如圖,采用 互為主從架構(gòu) 有個(gè)復(fù)雜點(diǎn)就是,因?yàn)閮膳_(tái)主機(jī)都接受寫數(shù)據(jù),那就需要將寫的最新數(shù)據(jù)實(shí)時(shí)的同步給對(duì)方,需要將數(shù)據(jù)進(jìn)行兩臺(tái)主機(jī)的雙向復(fù)制。而雙向復(fù)制不可避免的會(huì)在一定程度上帶來(lái)數(shù)據(jù)延
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 循環(huán)泵產(chǎn)品供應(yīng)鏈分析
- 保險(xiǎn)承保行業(yè)經(jīng)營(yíng)分析報(bào)告
- 印制的日程表產(chǎn)品供應(yīng)鏈分析
- 電動(dòng)指甲銼細(xì)分市場(chǎng)深度研究報(bào)告
- 制塑料桶罐設(shè)備產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 電報(bào)線產(chǎn)品供應(yīng)鏈分析
- 與企業(yè)并購(gòu)相關(guān)的法律研究行業(yè)經(jīng)營(yíng)分析報(bào)告
- 提高學(xué)生拼音學(xué)習(xí)效果的教學(xué)策略-探索多種形式的練習(xí)和鞏固
- 測(cè)振儀產(chǎn)品供應(yīng)鏈分析
- 導(dǎo)演廣告片行業(yè)營(yíng)銷策略方案
- 產(chǎn)后出血教學(xué)版課件
- 中頻電治療儀操作培訓(xùn)課件
- 預(yù)防犯罪 課件-部編版道德與法治八年級(jí)上冊(cè)
- 上市公司信息披露及相關(guān)案例課件
- 肺淋巴瘤的影像診斷課件
- 粉煤灰實(shí)驗(yàn)步驟及規(guī)范課件
- 中鐵十一局宣傳片腳本策劃方案
- (word完整版)ISO 75-2- 中文版
- 吉林省白城市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 砍伐工程方案35963
- 《大醫(yī)精誠(chéng)》說(shuō)課(新)
評(píng)論
0/150
提交評(píng)論