zoukankan      html  css  js  c++  java
  • 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的概念。

    就这样,完了。

  • 相关阅读:
    为什么写技术博客对新人如此重要?
    Javascript经典正则表达式
    关于读书的那些事,其实我一直...没有行动
    dede织梦CMS文件夹目录结构
    jQ初体验,^_^
    vi/vim 基本使用方法
    (X)HTML Strict 下的嵌套规则
    KISS保持简单:纪念丹尼斯·里奇
    关于jQuery性能优化
    编码规范CSSHTML 摘自kissyui
  • 原文地址:https://www.cnblogs.com/f-ck-need-u/p/9216828.html
Copyright © 2011-2022 走看看