五分鐘技術趣談 | MMD數據庫高可用方案
Part 01
概述
Mysql作為市場上最受歡迎的數據庫之一,可以給業務提供穩定的數據讀寫能力。隨著業務場景多樣化,單一的數據庫管理已經不滿足市場需求,逐漸的衍生出了多種類型的高可用方案,其中MHA最受歡迎,但MHA依賴分布式mha4服務,容錯性差,且造成浪費資源。所以我們需要通過雙高可用方式來提高數據庫的穩定性。
Part 02
組成
圖片
Mysql高可用包含3個模塊,具體模塊詳情如下:
?keeplived服務:主要提供可用VIP;
?Mysql_cluster服務:實現用戶數據的讀寫和故障遷移;
?同步檢測服務:通過撥測檢查服務同步狀態,進行異常處理。
Part 03
方案介紹
1??通過域名對外提供服務;
2??兩臺Mysql都可讀寫,互為主備,masterA負責數據的寫入,masterB備用;
3??masterA是masterB的主庫,masterB又是masterA的主庫,它們互為主從;
4??兩臺主庫之間做高可用,可以采用keepalived方案(使用VIP對外提供服務);
5??masterA或masterB均不因異?;謴秃蠖鴵屨糣IP(nopreempt);
6??masterA和masterB均有同步數據探測,同步異常及時處理。
Part 04
方案優勢
數據庫高可用方案具有以下優勢:
? 多集群管理:降低了多種異常發生造成的影響,提高了環境的穩定性。
? 數據準確性:Mysql單節點寫入,不容易造成數據覆蓋、主鍵重復等問題,解決了同步異常無法確定以哪個庫為準的問題。
? 降本增效:與傳統數據庫高可用相比,服務器資源占用降低了30%以上、節省運維成本40%以上。
? 檢測機制:頻率性監測機制,確保及時發現問題,自身治愈。
Part 05
方案效果
masterA和masterB可以采用單/雙遞增主鍵:
1.解決Mysql節點都可以寫入,極其容易造成主鍵重復,進而導致主從同步失敗的問題。
2.標識數據通過哪個數據庫寫入。
Part 06
結束語
在整體方案上,如果要保證數據的準確性,就依賴于單寫,技術架構上就存在單點壓力過載的風險,目前數據庫單寫是瓶頸。讀寫分離、多寫將是未來的主要發展趨勢,技術架構難解決的問題,我們可以通過業務側來解決,根據業務分類選擇高可用架構中不同的數據庫存儲,可以保證單業務側的數據完整性,就能解決單寫和單點壓力過載的問題。為不同業務應用場景提供相匹配的解決方案,實現多種應用場景才是我們的初衷。