MySQL高可用之組復制(1):組復制技術簡介


MySQL組復制系列文章:

  1. MySQL組復制大綱
  2. MySQL組復制(1):組復制技術簡介
  3. MySQL組復制(2):配置單主模型的組復制
  4. MySQL組復制(3):配置多主模型的組復制
  5. MySQL組復制(4):組復制理論透徹分析

1.MySQL高可用的背景

數據庫的主從復制是一個很實用的功能,但如何保證它的高可用卻是一件難事。實現MySQL主從復制高可用的工具,常見的有:

  • (1).MMM:淘汰了,在一致性和高並發穩定性等方面有些問題。
  • (2).MHA:有些人還在用,但也有些問題,也是趨於淘汰的MySQL主從高可用方案。
  • (3).Galera:引領時代的主從復制高可用技術。
  • (4).MariaDB Galera Cluster:MariaDB對Galera的實現。
  • (5).PXC:Percona XtraDB Cluster,是Percona對Galera的自我實現,用的人似乎很多。
  • (6).GR:Group Replication,MySQL官方提供的組復制技術(MySQL 5.7.17引入的技術),基於Paxos算法。
    • MariaDB Galera Cluster、PXC、GR是類似的,都各有優點。但GR是革命性的,基於原生復制技術,據傳很多方面都優於PXC。

但是,上面每個高可用實現方法,都有這樣那樣的缺點,甚至mmm還是通過perl腳本來自動化模擬高可用環境的。到了Galera,這是一個引領潮流的高可用技術,它主要針對具有事務特性的Innodb存儲引擎,Percona和MariaDB都分別實現了自己的Galera技術:MariaDB Galera Cluster和Percona XtraDB Cluster。MySQL沒有推出自己的Galera,但卻在2016年的MySQL 5.7.17版本中推出了Group Replication,即組復制技術。

網上對組復制和Galera的對比很多,特別是2016年組復制出生后大火的"Galera將死"的言論,但實際上,仍然有很多人在用着pxc,畢竟它已經揚帆航行多年,而GR才出沒多久,前幾個版本也一直在修修補補。那么,GR or Galera, that's a question

廢話說了一大堆,還是進入正文吧:MySQL組復制技術的簡介。

2.什么是MGR?

MGR(MySQL Group Replication)是MySQL官方在MySQL 5.7.17版本中以插件形式推出的主從復制高可用技術,它基於原生的主從復制,將各節點歸入到一個組中,通過組內節點的通信協商(組通信協議基於Paxos算法),實現數據的強一致性、故障探測、沖突檢測、節點加組、節點離組等等功能。

例如,具有3個節點的組:

這3個節點互相通信,每當有事件發生,都會向其他節點傳播該事件,然后協商,如果大多數節點都同意這次的事件,那么該事件將通過,否則該事件將失敗或回滾。

這些節點可以是單主模型的(single-primary),也可以是多主模型的(multi-primary)。單主模型只有一個主節點可以接受寫操作,主節點故障時可以自動選舉主節點。多主模型下,所有節點都可以接受寫操作,所以沒有master-slave的概念。

就這樣,完了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM