亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

歡迎關(guān)注我的頭條號:Wooola,10年JAVA軟件開發(fā)及架構(gòu)設(shè)計經(jīng)驗,專注于Java、Golang、微服務(wù)架構(gòu),致力于每天分享原創(chuàng)文章、快樂編碼和開源技術(shù)。

MGR簡介

MySQL Group Replication(下簡稱:MGR)是MySQL官方推出的一種基于Paxos協(xié)議的狀態(tài)機復(fù)制。在MGR出現(xiàn)之前,用戶常見的MySQL高可用方式,無論怎么變化架構(gòu),本質(zhì)就是Master-Slave架構(gòu)。MySQL 5.7版本開始支持無損半同步復(fù)制(lossless semi-sync replication),從而進一步提示數(shù)據(jù)復(fù)制的強一致性。

MGR與其他復(fù)制的對比介紹

MySQL異步復(fù)制

master事務(wù)的提交不需要經(jīng)過slave的確認,slave是否接收到master的binlog,master并不care。slave接收到master binlog后先寫relay log,最后異步地去執(zhí)行relay log中的sql應(yīng)用到自身。由于master的提交不需要確保slave relay log是否被正確接受,當(dāng)slave接受master binlog失敗或者relay log應(yīng)用失敗,master無法感知。

微服務(wù)架構(gòu)下:MySQL5.7新特性--官方高可用方案MGR介紹

 

假設(shè)master發(fā)生宕機并且binlog還沒來得及被slave接收,而切換程序?qū)lave提升為新的master,就會出現(xiàn)數(shù)據(jù)不一致的情況!另外,在高并發(fā)的情況下,傳統(tǒng)的主從復(fù)制,從節(jié)點可能會與主產(chǎn)生較大的延遲(當(dāng)然mysql后續(xù)版本陸續(xù)做了優(yōu)化,推出了并行復(fù)制,以此降低異步復(fù)制的延遲)

MySQL半同步復(fù)制

基于傳統(tǒng)異步存在的缺陷,mysql在5.5版本推出半同步復(fù)制。可以說半同步復(fù)制是傳統(tǒng)異步復(fù)制的改進,在master事務(wù)的commit之前,必須確保一個slave收到relay log并且響應(yīng)給master以后,才能進行事務(wù)的commit。但是slave對于relay log的應(yīng)用仍然是異步進行的,原理如下圖所示:

微服務(wù)架構(gòu)下:MySQL5.7新特性--官方高可用方案MGR介紹

 

MySQL組復(fù)制

基于傳統(tǒng)異步復(fù)制和半同步復(fù)制的缺陷——數(shù)據(jù)的一致性問題無法保證,MySQL官方在5.7.17版本正式推出組復(fù)制(MySQL Group Replication,簡稱MGR)。

由若干個節(jié)點共同組成一個復(fù)制組,一個事務(wù)的提交,必須經(jīng)過組內(nèi)大多數(shù)節(jié)點(N / 2 + 1)決議并通過,才能得以提交。如上圖所示,由3個節(jié)點組成一個復(fù)制組,Consensus層為一致性協(xié)議層,在事務(wù)提交過程中,發(fā)生組間通訊,由2個節(jié)點決議(certify)通過這個事務(wù),事務(wù)才能夠最終得以提交并響應(yīng)。

引入組復(fù)制,主要是為了解決傳統(tǒng)異步復(fù)制和半同步復(fù)制可能產(chǎn)生數(shù)據(jù)不一致的問題。組復(fù)制依靠分布式一致性協(xié)議(Paxos協(xié)議的變體),實現(xiàn)了分布式下數(shù)據(jù)的最終一致性,提供了真正的數(shù)據(jù)高可用方案(是否真正高可用還有待商榷)。其提供的多寫方案,給我們實現(xiàn)多活方案帶來了希望。

微服務(wù)架構(gòu)下:MySQL5.7新特性--官方高可用方案MGR介紹

 

一個復(fù)制組由若干個節(jié)點(數(shù)據(jù)庫實例)組成,組內(nèi)各個節(jié)點維護各自的數(shù)據(jù)副本(Share Nothing),通過一致性協(xié)議實現(xiàn)原子消息和全局有序消息,來實現(xiàn)組內(nèi)實例數(shù)據(jù)的一致。

MGR的解決方案現(xiàn)在具備的特性

  • 數(shù)據(jù)一致性保障:確保集群中大部分節(jié)點收到日志
  • 多節(jié)點寫入支持:多寫模式下支持集群中的所有節(jié)點都可以寫入
  • Fault Tolerance: 確保系統(tǒng)發(fā)生故障(包括腦裂)依然可用,雙寫對系統(tǒng)無影響

MGR的解決方案目前的影響

  • 僅支持InnoDB表,并且每張表一定要有一個主鍵,用于做write set的沖突檢測;
  • 必須打開GTID特性,二進制日志格式必須設(shè)置為ROW,用于選主與write set
  • COMMIT可能會導(dǎo)致失敗,類似于快照事務(wù)隔離級別的失敗場景
  • 目前一個MGR集群最多支持9個節(jié)點
  • 不支持外鍵于save point特性,無法做全局間的約束檢測與部分部分回滾
  • 二進制日志不支持binlog event checksum

來源:cnblogs | 羅阿紅

分享到:
標簽:MySQL5
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定