MySQL 架构类问题之 MGR 架构

来自Linux78|wiki
Bob讨论 | 贡献2019年12月16日 (一) 15:36的版本 (创建页面,内容为“=== MGR 复制 === MGR(MySQL Group Repliacation) 官方退出的一种基于 paxos 协议的复制 是一种不同于异步复制的多 master 复制集群 =…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

MGR 复制

MGR(MySQL Group Repliacation)

官方退出的一种基于 paxos 协议的复制

是一种不同于异步复制的多 master 复制集群

两种模式

单主模式

     app 
     / | \
 主 1 主 2 主 3

(读写)(读)(读)

group_replication_single_primary_mode=ON

多主模式

     app 
    / | \
主 1 主 2 主 3

(读写)(读写)(读写)

group_replication_single_primary_mode=OFF

架构需要的资源

集群大小	投票数	允许宕机数量
3      	2	1
4	        3	1
5	        3	2
6	        4	2
7	        4	3
8	        5	3
9	        5	4

架构配置步骤

安装 group_replication 插件

在第一个实例上建立复制用户

配置第一个组实例

把其他实例加到组

架构优点

group replication 组内成员间基本无延迟

可以支持多写操作,读写服务高可用

数据强一致,可以保证不丢失事务

架构缺点

只支持 InnoDB 存储引擎的表,并且每个表必须有一个主键

单主模式下很难确认下一个主键

只能用在 GTID 模式的复制形式下,且日志格式必须是 row

架构适用场景

对主从延迟十分敏感的应用场景

希望可以对读写提供高可用的场景

希望可以保证数据强一致的场景