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

相关文章
相关标签/搜索