MySQL MGR 有哪些优点

 更新时间:2020年08月06日 09:39:53   作者:MySQL轻松学  
这篇文章主要介绍了MySQL MGR 有哪些优点,文中讲解非常细致,帮助大家更好的理解和学习MySQL mgr,感兴趣的朋友可以了解下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

MGR(Mysql Group Replication)是5.7版本新加的特性,是一个MySQL插件。

MGR 是一个新的高可用与高扩展的方案,集群中的任何节点数据都是一样的,可以实现任何节点都可以写入,实现了真正意义上的多主。

主要包含以下几部分:

 API层:负责完成和MySQL Server的交互,得到Server状态,完成事务的管理。

组件层:主要包括3个特定组件,Capture负责收集事务执行的相关信息,Applier负责应用集群事务到本地,Recovery负责节点的数据恢复。

复制层:负责冲突验证,接收和应用集群事务。

集群通信层:基于Paxos协议的集群通信引擎,以及和上层组件的交互接口。

MGR组复制:

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

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

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

MGR是实现分布式数据库架构,底层的分布式基础是Paxos协议。通过Paxos来保证分布式数据库系统中事务的提交顺序。虽然MGR会使用Slave的通道,但只是使用这个通道的执行线程(Applier Thread)来执行远程发送过来的Binlog Event,并没有使用这个通道来传输Binlog Event。MGR没有使用异步复制的Binlog Event传输机制,也不使用MySQL的服务端口来进行通信。MGR创建了一个独立的TCP端口来进行通信,各个MySQL服务器上的Group Replication插件通过这个端口连接在一起,两两之间可以直接通信。

Binlog Event的传输并不像异步复制那样是简单的点到点之间的传输。MGR在传输数据时,使用了Paxos协议。Paxos协议保证了数据传输的一致性和原子性。MGR基于Paxos协议构建了一个分布式的状态机复制机制,这是实现多主复制的核心技术。

三个主要优点:

1. 避免脑裂:MGR中不会出现脑裂的现象(但要注意可能出现网络分区的情况,MGR根据参数group_replication_unreachable_majority_timeout=0/N设置的不同,行为稍有不同)。

2. 数据一致性保障:MGR的冗余能力很好,能够保证Binlog Event至少被复制到超过一半的成员上,只要同时宕机的成员不超过半数便不会导致数据丢失。MGR还保证只要Binlog Event没有被传输到半数以上的成员,本地成员不会将事务的Binlog Event写入Binlog文件和提交事务,从而保证宕机的服务器上不会有组内在线成员上不存在的数据。因此,宕机的服务器重启后,不再需要特殊的处理就可以加入组。

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

以上就是MySQL MGR 有哪些优点的详细内容,更多关于MySQL MGR 的资料请关注程序员之家其它相关文章!

相关文章

  • Mysql在Windows系统快速安装部署方法(绿色免安装版)

    Mysql在Windows系统快速安装部署方法(绿色免安装版)

    这篇文章主要介绍了Mysql在Windows系统快速安装部署方法(绿色免安装版),需要的朋友可以参考下
    2017-06-06
  • MySQL数据库高级数据操作之新增数据

    MySQL数据库高级数据操作之新增数据

    这篇文章主要介绍了MySQL数据库高级数据操作之新增数据,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • 通过缓存+SQL修改优雅地优化慢查询

    通过缓存+SQL修改优雅地优化慢查询

    本文通过介绍缓存的基本原理和SQL语句的优化手段,以及实际案例的分析,为读者提供了一种简单而有效的优化思路。读者可以通过本文了解到如何在不修改程序代码的情况下,通过巧妙地运用缓存和SQL优化技巧,提高程序的性能和响应速度。
    2023-04-04
  • MySQL与SQL Server的一些区别浅析

    MySQL与SQL Server的一些区别浅析

    这篇文章主要介绍了MySQL与SQL Server的一些区别浅析,本文罗列了MySQL与SQL Server的25个不同的地方,并对它们的分页技术的不同做了讲解,需要的朋友可以参考下
    2014-08-08
  • ubuntu20安装配置mysql8.0.23步骤详解

    ubuntu20安装配置mysql8.0.23步骤详解

    这篇文章主要为大家介绍了ubuntu20安装配置mysql8.0.23步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Windows安装MySQL8.0.x 版本教程

    Windows安装MySQL8.0.x 版本教程

    这篇文章介绍了Windows安装MySQL8.0.x 版本的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • mysql实现向某个字段前或后添加字符

    mysql实现向某个字段前或后添加字符

    这篇文章主要介绍了mysql实现向某个字段前或后添加字符,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Mysql常用函数之Rank排名函数详解

    Mysql常用函数之Rank排名函数详解

    这篇文章主要介绍了Mysql常用函数之Rank排名函数详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • mysql数据库表增添字段,删除字段,修改字段的排列等操作

    mysql数据库表增添字段,删除字段,修改字段的排列等操作

    这篇文章主要介绍了mysql数据库表增添字段,删除字段,修改字段的排列等操作,修改表指的是修改数据库之后中已经存在的数据表的结构
    2022-07-07
  • 详解MySQL中事务隔离级别的实现原理

    详解MySQL中事务隔离级别的实现原理

    这篇文章主要介绍了MySQL中事务隔离级别的实现原理,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2021-01-01

最新评论

?


http://www.vxiaotou.com