首页 > 其他分享 >高可用方案MGR介绍

高可用方案MGR介绍

时间:2024-11-18 08:45:05浏览次数:1  
标签:方案 slave 可用 MGR 复制 master MySQL 节点

MGR简介

MySQL Group Replication(下简称:MGR)是MySQL官方推出的一种基于Paxos协议的状态机复制。在MGR出现之前,用户常见的MySQL高可用方式,无论怎么变化架构,本质就是Master-Slave架构。MySQL 5.7版本开始支持无损半同步复制(lossless semi-sync replication),从而进一步提示数据复制的强一致性。

MGR与其他复制的对比介绍

MySQL异步复制

master事务的提交不需要经过slave的确认,slave是否接收到master的binlog,master并不care。slave接收到master binlog后先写relay log,最后异步地去执行relay log中的sql应用到自身。由于master的提交不需要确保slave relay log是否被正确接受,当slave接受master binlog失败或者relay log应用失败,master无法感知。

假设master发生宕机并且binlog还没来得及被slave接收,而切换程序将slave提升为新的master,就会出现数据不一致的情况!另外,在高并发的情况下,传统的主从复制,从节点可能会与主产生较大的延迟(当然mysql后续版本陆续做了优化,推出了并行复制,以此降低异步复制的延迟)

MySQL半同步复制

基于传统异步存在的缺陷,mysql在5.5版本推出半同步复制。可以说半同步复制是传统异步复制的改进,在master事务的commit之前,必须确保一个slave收到relay log并且响应给master以后,才能进行事务的commit。但是slave对于relay log的应用仍然是异步进行的,原理如下图所示:

MySQL组复制

基于传统异步复制和半同步复制的缺陷——数据的一致性问题无法保证,MySQL官方在5.7.17版本正式推出组复制(MySQL Group Replication,简称MGR)。

由若干个节点共同组成一个复制组,一个事务的提交,必须经过组内大多数节点(N / 2 + 1)决议并通过,才能得以提交。如上图所示,由3个节点组成一个复制组,Consensus层为一致性协议层,在事务提交过程中,发生组间通讯,由2个节点决议(certify)通过这个事务,事务才能够最终得以提交并响应。

引入组复制,主要是为了解决传统异步复制和半同步复制可能产生数据不一致的问题。组复制依靠分布式一致性协议(Paxos协议的变体),实现了分布式下数据的最终一致性,提供了真正的数据高可用方案(是否真正高可用还有待商榷)。其提供的多写方案,给我们实现多活方案带来了希望。

一个复制组由若干个节点(数据库实例)组成,组内各个节点维护各自的数据副本(Share Nothing),通过一致性协议实现原子消息和全局有序消息,来实现组内实例数据的一致。

MGR的解决方案现在具备的特性

  • 数据一致性保障:确保集群中大部分节点收到日志

  • 多节点写入支持:多写模式下支持集群中的所有节点都可以写入

  • Fault Tolerance: 确保系统发生故障(包括脑裂)依然可用,双写对系统无影响

MGR的解决方案目前的影响

  • 仅支持InnoDB表,并且每张表一定要有一个主键,用于做write set的冲突检测;

  • 必须打开GTID特性,二进制日志格式必须设置为ROW,用于选主与write set

  • COMMIT可能会导致失败,类似于快照事务隔离级别的失败场景

  • 目前一个MGR集群最多支持9个节点

  • 不支持外键于save point特性,无法做全局间的约束检测与部分部分回滚

  • 二进制日志不支持binlog event checksum

  作者:罗阿红 出处:http://www.cnblogs.com/luoahong/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

标签:方案,slave,可用,MGR,复制,master,MySQL,节点
From: https://www.cnblogs.com/ataoxz/p/18551625

相关文章

  • 电子应用设计方案-12:智能窗帘系统方案设计
    一、系统概述 本设计方案旨在打造便捷、高效的全自动智能窗帘系统。 二、硬件选择 1. 电机:选用低噪音、扭矩合适的智能电机,根据窗帘尺寸和重量确定电机功率,确保能平稳拉动窗帘。2. 轨道:选择坚固、顺滑的铝合金轨道,有单轨和双轨选项,满足不同窗帘类型需求。 三、......
  • 为正在运行的 Docker 容器重启策略,以提高服务的可用性
    为正在运行的Docker容器重启策略,以提高服务的可用性。为正在运行的Docker容器添加--restart=always--restart=always是Docker中一个常用的参数,用来设置容器的重启策略。它的作用是确保容器在一定条件下能够自动重启,以提高服务的可用性。方法:直接修改配置步骤1:查看......
  • zlibrary入口网站/最新官网国内可用地址(持续更新)
    Z-Library(简称z-lib,前身为BookFinder)是一个影子图书馆和开放获取文件分享计划,用户可在此网络下载期刊文章以及各种类型的书籍。截止2022年6月12日,该网站共收录了10,456,034本书和84,837,646篇文章。zlibrary电脑客户端/安卓appzlibrary(windows/mac/安卓)客户端:https://pan.qu......
  • zlibrary镜像网页,国内可用官网入口及客户端/app(持续更新)
    Z-Library(也被称为Z-Lib)是一个在线的、开源的、免费的数字图书馆项目,旨在提供各种书籍、文章、科学论文、杂志、漫画等资源的访问。该项目成立于2009年,至今已经收录了超过10,000,000册书籍和80,000,000篇文章。zlibrary电脑客户端/安卓appzlibrary(windows/mac/安卓)安装包下......
  • Java 中常见的三类线程安全问题:解决方案与实例分析
    在Java并发编程中,线程安全是一个非常重要的概念。如果多个线程同时访问一个共享资源而不进行适当的同步,就会出现线程安全问题,导致程序行为异常。根据不同的场景,线程安全问题可以分为运行结果错误、发布和初始化导致的线程安全问题和活跃性问题。本文将详细探讨这三类线程......
  • SAP发出商品方案
    什么是发出商品在会计核算中,对厂家已发货而客户方未确认收货的不作为销售处理;必须收到货后才能确认收入;企业经营分析需要将收入和成本认列在同一个月如何让收入和成本确认在同一个期间?            “发出商品”进行过渡发出商品SAP方案POD一步法适用范围......
  • 电子应用产品设计方案-10:全自动智能门禁系统设计方案
    一、系统概述本全自动智能门禁系统旨在提供高效、安全、便捷的人员进出管理解决方案。通过融合先进的生物识别技术、传感器技术、网络通信技术和自动化控制技术,实现门禁的自动识别、授权、记录和管理。二、系统组成1.前端识别设备   -人脸识别模块:采用高清摄像头......
  • 项目解决方案: 视频监控接入汇聚平台和三维建模系统融合来实现三维立体可视化指挥系统
    目录一、项目要求描述1、实时视频接入和控制要求2、视频播放要求3、可以提供API接口供其他软件应用程序调用二、方案设计1、方案设计图2、需求实现三、产品和功能描述1、概述2、视频监控接入和汇聚平台(1)概述(2)视频浏览及控制(3)数据信息管理(4)用户权限管理3、流媒体......
  • 分摊策略计算-技术方案
    现状分析现在分摊策略计算逻辑是放在python里,通过DAG去调用python中的逻辑去执行分摊计算,现由于架构升级的需要,需要把一键分摊逻辑抽到java代码中实现,并提高其复用性.  原型:设计目标 将python中的分摊计算逻辑迁移到java代码中,并支持分摊多灵活的配置(在城市商品......
  • 快速量产低功耗 4G 定位方案?Air201 模组来搞定!
    今天我们来了解的是Air201模组快速量产低功耗4G定位方案,希望大家有所收获。寻寻觅觅低功耗4G定位方案?一个Air201就够了!——定位准、体积小、功耗低,助力行业客户快速量产!01Air201是什么?16mm32mm4mm迷你尺寸,便于嵌入各类物联网设备:底板厚度:0.6mm;模块厚度:1.7mm;SIM......