從MySQL高可用架構(gòu)看高可用架構(gòu)設(shè)計(jì)

高可用HA(High Availability)是分布式系統(tǒng)架構(gòu)設(shè)計(jì)中必須考慮的因素之一,它通常是指,通過(guò)設(shè)計(jì)減少系統(tǒng)不能提供服務(wù)的時(shí)間。

為正藍(lán)等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及正藍(lán)網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站建設(shè)、正藍(lán)網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

假設(shè)系統(tǒng)一直能夠提供服務(wù),我們說(shuō)系統(tǒng)的可用性是100%。如果系統(tǒng)每運(yùn)行100個(gè)時(shí)間單位,會(huì)有1個(gè)時(shí)間單位無(wú)法提供服務(wù),我們說(shuō)系統(tǒng)的可用性是99%。很多公司的高可用目標(biāo)是4個(gè)9,也就是99.99%,這就意味著,系統(tǒng)的年停機(jī)時(shí)間為8.76個(gè)小時(shí)。

百度的搜索首頁(yè),是業(yè)內(nèi)公認(rèn)高可用保障非常出色的系統(tǒng),甚至人們會(huì)通過(guò)www.baidu.com 能不能訪問來(lái)判斷“網(wǎng)絡(luò)的連通性”,百度高可用的服務(wù)讓人留下啦“網(wǎng)絡(luò)通暢,百度就能訪問”,“百度打不開,應(yīng)該是網(wǎng)絡(luò)連不上”的印象,這其實(shí)是對(duì)百度HA最高的褒獎(jiǎng)。

1. MySQL高可用

說(shuō)到MySQL的高可用,不得不提到復(fù)制,復(fù)制是MySQL高可用的基礎(chǔ)。復(fù)制解決了什么問題呢?

  1. 實(shí)現(xiàn)數(shù)據(jù)備份

  2. 如果有從服務(wù)器,主服務(wù)器發(fā)生故障之后,開通從服務(wù)器的寫入功能,從而提供高可用的使用功能

  3. 異地容災(zāi)

  4. 分?jǐn)傌?fù)載(scale out )主服務(wù)器:寫、從服務(wù)器:讀

1.1 主從復(fù)制流程

從MySQL高可用架構(gòu)看高可用架構(gòu)設(shè)計(jì)

不同的復(fù)制協(xié)議:

從MySQL高可用架構(gòu)看高可用架構(gòu)設(shè)計(jì)

1.2 高可用復(fù)制架構(gòu)

從MySQL高可用架構(gòu)看高可用架構(gòu)設(shè)計(jì)

1.3.mysql 高可用架構(gòu)

1.3.1 MySQL Cluster架構(gòu)

限制存儲(chǔ)引擎為NDB存儲(chǔ)引擎:

從MySQL高可用架構(gòu)看高可用架構(gòu)設(shè)計(jì)

1.3.2 MySQL+MMM架構(gòu)

MMM即Master-Master Replication Manager for MySQL(mysql主主復(fù)制管理器),是關(guān)于mysql主主復(fù)制配置的監(jiān)控、故障轉(zhuǎn)移和管理的一套可伸縮的腳本套件(在任何時(shí)候只有一個(gè)節(jié)點(diǎn)可以被寫入),這個(gè)套件也能基于標(biāo)準(zhǔn)的主從配置的任意數(shù)量的從服務(wù)器進(jìn)行讀負(fù)載均衡,所以你可以用它來(lái)在一組居于復(fù)制的服務(wù)器啟動(dòng)虛擬ip,除此之外,它還有實(shí)現(xiàn)數(shù)據(jù)備份、節(jié)點(diǎn)之間重新同步功能的腳本。

MySQL本身沒有提供replication failover的解決方案,通過(guò)MMM方案能實(shí)現(xiàn)服務(wù)器的故障轉(zhuǎn)移,從而實(shí)現(xiàn)mysql的高可用。

從MySQL高可用架構(gòu)看高可用架構(gòu)設(shè)計(jì)

從MySQL高可用架構(gòu)看高可用架構(gòu)設(shè)計(jì)

此方案特點(diǎn):

1、安全、穩(wěn)定性較高,可擴(kuò)展性好

2、 對(duì)服務(wù)器數(shù)量要求至少三臺(tái)及以上

3、 對(duì)雙主(主從復(fù)制性要求較高)

4、 同樣可實(shí)現(xiàn)讀寫分離

1.3.3 MySQL+MHA架構(gòu)

MHA目前在MySQL高可用方案中應(yīng)該也是比較成熟和常見的方案,它由日本人開發(fā)出來(lái),在MySQL故障切換過(guò)程中,MHA能做到快速自動(dòng)切換操作,而且還能最大限度保持?jǐn)?shù)據(jù)的一致性。

從MySQL高可用架構(gòu)看高可用架構(gòu)設(shè)計(jì)

從MySQL高可用架構(gòu)看高可用架構(gòu)設(shè)計(jì)

此架構(gòu)特點(diǎn):

1、安裝布署簡(jiǎn)單,不影響現(xiàn)有架構(gòu)

2、自動(dòng)監(jiān)控和故障轉(zhuǎn)移

3、保障數(shù)據(jù)一致性

4、故障切換方式可使用手動(dòng)或自動(dòng)多向選擇

5、適應(yīng)范圍大(適用任何存儲(chǔ)引擎)

2.MySQL高可用帶給我們對(duì)高可用架構(gòu)設(shè)計(jì)的思考

為了保證數(shù)據(jù)的一致性,MySQL提出了復(fù)制的概念。

為了滿足acid,MySQL提供了兩種日志redo和undo日志,redo log是重做日志,提供前滾操作,undo log是回滾日志,提供回滾操作。undo log不是redo log的逆向過(guò)程,其實(shí)它們都算是用來(lái)恢復(fù)的日志:redo log通常是物理日志,記錄的是數(shù)據(jù)頁(yè)的物理修改,而不是某一行或某幾行修改成怎樣怎樣,它用來(lái)恢復(fù)提交后的物理數(shù)據(jù)頁(yè)(恢復(fù)數(shù)據(jù)頁(yè),且只能恢復(fù)到最后一次提交的位置)。undo用來(lái)回滾行記錄到某個(gè)版本。undo log一般是邏輯日志,根據(jù)每行記錄進(jìn)行記錄。為了高可用的保證,有了多主或者主從切換。

數(shù)據(jù)庫(kù)的高可用架構(gòu)一般在系統(tǒng)的底層,這方面的技術(shù)要求比較高,整個(gè)高可用系統(tǒng)大致如下:

從MySQL高可用架構(gòu)看高可用架構(gòu)設(shè)計(jì)

3.總結(jié)

我們都知道,單點(diǎn)是系統(tǒng)高可用的大敵,單點(diǎn)往往是系統(tǒng)高可用最大的風(fēng)險(xiǎn)和敵人,應(yīng)該盡量在系統(tǒng)設(shè)計(jì)的過(guò)程中避免單點(diǎn)。

方法論上,高可用保證的原則是“集群化”,或者叫“冗余”:只有一個(gè)單點(diǎn),掛了服務(wù)會(huì)受影響;如果有冗余備份,掛了還有其他backup能夠頂上。冗余的最大難道是一致性即復(fù)制技術(shù),MySQL提供了一個(gè)思路。

有了冗余之后,還不夠,每次出現(xiàn)故障需要人工介入恢復(fù)勢(shì)必會(huì)增加系統(tǒng)的不可服務(wù)實(shí)踐。所以,又往往是通過(guò)“自動(dòng)故障轉(zhuǎn)移”來(lái)實(shí)現(xiàn)系統(tǒng)的高可用。災(zāi)備的恢復(fù)一般通過(guò)日志來(lái)做,日志的設(shè)計(jì)也是難點(diǎn),MySQL提供了一個(gè)思路。

歡迎工作一到五年的Java工程師朋友們加入我的個(gè)人粉絲群Java填坑之路:659655594群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個(gè)知識(shí)點(diǎn)的架構(gòu)資料)合理利用自己每一分每一秒的時(shí)間來(lái)學(xué)習(xí)提升自己,不要再用"沒有時(shí)間“來(lái)掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來(lái)的自己一個(gè)交代!

本文名稱:從MySQL高可用架構(gòu)看高可用架構(gòu)設(shè)計(jì)
文章出自:http://bm7419.com/article22/igoscc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化App開發(fā)、網(wǎng)站收錄企業(yè)建站、品牌網(wǎng)站設(shè)計(jì)外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)