五分鐘技術(shù)趣談 | MMD數(shù)據(jù)庫高可用方案

Part 01
概述
Mysql作為市場上最受歡迎的數(shù)據(jù)庫之一,可以給業(yè)務(wù)提供穩(wěn)定的數(shù)據(jù)讀寫能力。隨著業(yè)務(wù)場景多樣化,單一的數(shù)據(jù)庫管理已經(jīng)不滿足市場需求,逐漸的衍生出了多種類型的高可用方案,其中MHA最受歡迎,但MHA依賴分布式mha4服務(wù),容錯(cuò)性差,且造成浪費(fèi)資源。所以我們需要通過雙高可用方式來提高數(shù)據(jù)庫的穩(wěn)定性。
Part 02
組成
圖片
Mysql高可用包含3個(gè)模塊,具體模塊詳情如下:
?keeplived服務(wù):主要提供可用VIP;
?Mysql_cluster服務(wù):實(shí)現(xiàn)用戶數(shù)據(jù)的讀寫和故障遷移;
?同步檢測服務(wù):通過撥測檢查服務(wù)同步狀態(tài),進(jìn)行異常處理。
Part 03
方案介紹
1??通過域名對(duì)外提供服務(wù);
2??兩臺(tái)Mysql都可讀寫,互為主備,masterA負(fù)責(zé)數(shù)據(jù)的寫入,masterB備用;
3??masterA是masterB的主庫,masterB又是masterA的主庫,它們互為主從;
4??兩臺(tái)主庫之間做高可用,可以采用keepalived方案(使用VIP對(duì)外提供服務(wù));
5??masterA或masterB均不因異?;謴?fù)后而搶占VIP(nopreempt);
6??masterA和masterB均有同步數(shù)據(jù)探測,同步異常及時(shí)處理。

Part 04
方案優(yōu)勢(shì)
數(shù)據(jù)庫高可用方案具有以下優(yōu)勢(shì):
? 多集群管理:降低了多種異常發(fā)生造成的影響,提高了環(huán)境的穩(wěn)定性。
? 數(shù)據(jù)準(zhǔn)確性:Mysql單節(jié)點(diǎn)寫入,不容易造成數(shù)據(jù)覆蓋、主鍵重復(fù)等問題,解決了同步異常無法確定以哪個(gè)庫為準(zhǔn)的問題。
? 降本增效:與傳統(tǒng)數(shù)據(jù)庫高可用相比,服務(wù)器資源占用降低了30%以上、節(jié)省運(yùn)維成本40%以上。
? 檢測機(jī)制:頻率性監(jiān)測機(jī)制,確保及時(shí)發(fā)現(xiàn)問題,自身治愈。
Part 05
方案效果

masterA和masterB可以采用單/雙遞增主鍵:

1.解決Mysql節(jié)點(diǎn)都可以寫入,極其容易造成主鍵重復(fù),進(jìn)而導(dǎo)致主從同步失敗的問題。
2.標(biāo)識(shí)數(shù)據(jù)通過哪個(gè)數(shù)據(jù)庫寫入。
Part 06
結(jié)束語
在整體方案上,如果要保證數(shù)據(jù)的準(zhǔn)確性,就依賴于單寫,技術(shù)架構(gòu)上就存在單點(diǎn)壓力過載的風(fēng)險(xiǎn),目前數(shù)據(jù)庫單寫是瓶頸。讀寫分離、多寫將是未來的主要發(fā)展趨勢(shì),技術(shù)架構(gòu)難解決的問題,我們可以通過業(yè)務(wù)側(cè)來解決,根據(jù)業(yè)務(wù)分類選擇高可用架構(gòu)中不同的數(shù)據(jù)庫存儲(chǔ),可以保證單業(yè)務(wù)側(cè)的數(shù)據(jù)完整性,就能解決單寫和單點(diǎn)壓力過載的問題。為不同業(yè)務(wù)應(yīng)用場景提供相匹配的解決方案,實(shí)現(xiàn)多種應(yīng)用場景才是我們的初衷。






































