MYSQL--架构--MGR--理论--01--MGR是什么

MYSQL–架构–MGR–理论–01–MGR是什么


1、MGR是什么

在这里插入图片描述

  1. MGR(MySQL Group Replication)是以插件形式推出的主从复制高可用技术
  2. MGR基于原生的主从复制,将各节点归入到一个组中,通过组内节点的通信协商(组通信协议基于Paxos算法),实现数据的强一致性、故障探测、冲突检测、节点加组、节点离组等等功能。
  3. 适用金融场景:支付,证券交易,保险,银行等金融场景。因为这些场景要求数据必须做到零丢失,数据库可用性在4个9,甚至5个9(年度停机时间不超过5分钟)。
  4. 提供了高一致性,高容错性,高扩展性,高灵活性的MySQL集群解决方案
  5. 组复制是一种无共享复制方案,其中每个服务器都有自己的整个数据副本
  6. 在2N+1个节点集群中,集群只要N+1个节点还存活着,数据库就能稳定的对外提供服务。
  7. 集群最多接入9个节点。
  8. 运行模式
    1. 单主模式
    2. 多主模式

1.1、举例

在这里插入图片描述

  1. 上图是具有3个节点的组,这3个节点互相通信,每当有事件发生,都会向其他节点传播该事件,然后协商,如果大多数节点都同意这次的事件,那么该事件将通过,否则该事件将失败或回滚。
  2. 节点类型可以是单主模型,也可以是多主模型的
    1. 单主模型只有一个主节点可以接受写操作,主节点故障时可以自动选举主节点。
    2. 多主模型下,所有节点都可以接受写操作,所以没有master-slave的概念。

2、MGR的特性

2.1、高一致性

基于原生复制及paxos协议的组复制技术,并以插件的方式提供,实现数据的最终一致性;

2.2、高容错性

  1. 可自动进行故障检测、自动切换,具备防脑裂机制
  2. 在2N+1个节点集群中,集群只要N+1个节点还存活着,数据库就能稳定的对外提供服务。
  3. 当不同节点产生资源争用冲突时,不会出现错误,按照先到者优先原则进行处理

2.3、高扩展性

节点的新增和移除都是自动的,新节点加入后,会自动从其他节点上同步状态,直到新节点和其他节点保持一致,如果某节点被移除了,其他节点自动更新组信息,自动维护新的组信息;

2.4、高灵活性

  1. 单主模式:
    1. 会自动选主
    2. 所有写操作都在master进行
  2. 多主模式:
    1. 所有的机器都是master
    2. 都支持读写

3、MGR为分布式状态机复制提供了服务器之间的强大协调

  1. 服务器属于同一组时,它们会自动进行协调。
  2. 该组可以在具有自动主库选举的单主模式下运行,其中一次仅一个服务器接受更新。或者,对 于更高级的用户,可以在多主模式下部署,在该模式下,所有服务器都可以接受更新,即使它们是同时发布的。这种功能的代价是应用程序必须解决此类部署所施加的限制。

4、组的视图一致

  1. 有一个内置的组成员资格服务,可以使组的视图一致,并且在任何给定时间点均可用于所有服务器。
  2. 服务器可以离开/加入该组,视图将自动更新。
    1. 有时服务器可能会意外离开该组,在这种情况下,故障检测机制会检测到此情况并通知该组视图已更改

5、一致性复制

  1. 对于要提交的事务,组的大多数必须在全局事务顺序中就给定事务的顺序达成一致。
    1. 每个服务器分别决定提交或中止事务,但所有服务器都要做出相同的决定。
    2. 如果存在网络分区,分裂导致成员无法达成一致,则系统将不会继续运行,直到解决此问题。因此,还有一个内置的自动裂脑保护机制。

6、组通信系统(GCS,Group Communication System)

  1. 提供 故障检测机制
  2. 提供 组成员资格服务、安全以及有序的消息传递机制。
  3. 可确保在服务器组之间数据的一致性复制
  4. 该技术的核心是Paxos算法的实现。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL组复制(MGR)是MySQL数据库的一种高可用性解决方案。它是一个MySQL服务器插件,可以创建具有弹性、高可用性和容错性的复制拓扑。MGR使用基于主-从复制的架构,其中一个节点被选为主节点,其他节点作为从节点。主节点负责处理写操作,并将更改传播到从节点。如果主节点发生故障,系统会自动选择一个从节点作为新的主节点,以确保系统的连续性。 要使用MGR,您需要满足以下要求: 1. MySQL版本必须是MySQL 5.7.17或更高版本。 2. 每个节点必须具有唯一的服务器ID。 3. 每个节点必须具有相同的MySQL版本和配置文件。 4. 每个节点必须能够相互通信。 以下是使用MGR的一些常见操作: 1. 初始化组复制: - 在主节点上执行以下命令: ```shell SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF; ``` - 在其他从节点上执行以下命令: ```shell START GROUP_REPLICATION; ``` 2. 添加从节点: - 在主节点上执行以下命令: ```shell ADD MEMBER 'address' TO 'group_name'; ``` - 其中,'address'是从节点的地址,'group_name'是组的名称。 3. 删除从节点: - 在主节点上执行以下命令: ```shell REMOVE MEMBER 'address'; ``` - 其中,'address'是要删除的从节点的地址。 4. 查看组状态: - 在任何节点上执行以下命令: ```shell SHOW STATUS LIKE 'group_replication%'; ``` 请注意,上述命令中的'address'应替换为实际的IP地址或主机名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值