MySQL高可用之組複製(1):組複製技術簡介

MySQL組複製系列文章:html

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

1.MySQL高可用的背景

數據庫的主從複製是一個很實用的功能,但如何保證它的高可用倒是一件難事。實現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 questionsql

廢話說了一大堆,仍是進入正文吧:MySQL組複製技術的簡介。數據庫

2.什麼是MGR?

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

例如,具備3個節點的組:高併發

這3個節點互相通訊,每當有事件發生,都會向其餘節點傳播該事件,而後協商,若是大多數節點都贊成此次的事件,那麼該事件將經過,不然該事件將失敗或回滾。工具

這些節點能夠是單主模型的(single-primary),也能夠是多主模型的(multi-primary)。單主模型只有一個主節點能夠接受寫操做,主節點故障時能夠自動選舉主節點。多主模型下,全部節點均可以接受寫操做,因此沒有master-slave的概念。插件

就這樣,完了。code

相關文章
相關標籤/搜索