🔄 MySQL 高可用集群架构

MySQL High Availability Cluster Architectures

应用层 / 客户端
负载均衡 / 中间件
MySQL 主节点
MySQL 从节点
仲裁节点 / 监控
存储 / 共享存储
读写流量
复制流量
心跳检测

📌 架构一:传统主从复制 (Master-Slave)

Application MySQL Router Master 读写 + Binlog R Slave 1 只读 + Relaylog S Slave 2 只读 + Relaylog S Binlog 复制 Binlog 复制 VIP: 192.168.1.100 MHA / Orchestrator

📋 架构说明

主从复制是最基础的高可用方案,主库处理所有写操作,从库异步复制主库的 Binlog 实现数据同步。

  • 写请求 → MySQL Router → Master (R/W)
  • 读请求 → MySQL Router → 自动分发到 Slave (R/O)
  • 主从复制存在延迟,切换时可能有数据丢失风险
  • 常用工具:MHA、Orchestrator、MySQL Failover

📌 架构二:MySQL Group Replication (MGR)

Application MySQL Router MySQL Group Replication Cluster Node 1 Primary (RW) P Node 2 Secondary (RO) S Node 3 Secondary (RO) S Group Replication Protocol (Paxos-like) MySQL InnoDB Cluster (MGR + Router + Shell)

📋 架构说明

MGR 是 MySQL 官方推出的基于 Paxos 协议的单主或多主集群方案,提供自动故障转移和数据强一致性。

  • 单主模式:只有一个 Primary 可写,其他为 Secondary 只读
  • 多主模式:所有节点均可读写,需应用层处理冲突
  • 基于 Paxos 协议实现分布式一致性,无需外部仲裁节点
  • 自动故障切换,RPO = 0(无数据丢失)
  • 配合 MySQL Shell 和 MySQL Router 实现完整高可用

📌 架构三:Galera Cluster

Application HAProxy Galera Cluster (Synchronous Replication) Node 1 MariaDB / Percona wsrep_provider Node 2 MariaDB / Percona wsrep_provider Node 3 MariaDB / Percona wsrep_provider G Synchronous Multi-master Replication (Certifier-based) 所有节点可读可写 | 自动集群成员管理 | 分布式崩溃恢复

📋 架构说明

Galera Cluster 是基于 Galera Replication Library 的同步多主复制方案,支持真正的多点写入。

  • 同步复制:事务在所有节点提交后才返回,确保数据一致性
  • 多主架构:任意节点都可以处理写请求
  • 无需人工干预的故障切换
  • 使用 Certification-based Replication,性能优于传统同步复制
  • 常见实现:MariaDB Galera Cluster、Percona XtraDB Cluster

📌 架构四:Keepalived + 双主复制

Application VIP: 192.168.1.100 Keepalived Master A RW: 192.168.1.11 Server ID: 1 Priority: 100 M Master B RW: 192.168.1.12 Server ID: 2 Priority: 90 S Binlog → ← Binlog VRRP Heartbeat (224.0.0.18) VIP 漂移实现自动故障切换

📋 架构说明

双主复制配合 Keepalived 实现 VIP 漂移,是经典的高可用方案,适合中小规模部署。

  • 双主模式:两个 MySQL 互为主从,互相复制 Binlog
  • Keepalived:通过 VRRP 协议实现 VIP 漂移和健康检查
  • 应用层只需连接 VIP,无需感知后端切换
  • 需要配置 auto_increment_offset 避免主键冲突
  • 注意:双主复制为异步,仍有数据丢失风险

📊 架构对比

特性 主从复制 MGR Galera Keepalived 双主
一致性 最终一致 强一致 强一致 最终一致
可用性 中等 中等
写入点 单点写入 单主/多主 多主 单点(VIP)
数据丢失 可能丢失 RPO=0 RPO=0 可能丢失
脑裂风险 需注意 需配置
复杂度 简单 中等 中等 中等
适用场景 读多写少 关键业务 多活需求 中小企业