最后更新于

Galera Cluster for MySQL介绍


Galera Cluster是由Codership公司开发的免费开源高可用数据库集群解决方案 🗄️。它为MySQL、MariaDB和Percona提供同步多主复制功能,实现真正的多点写入和数据一致性保证。

🏗️ 架构特点

核心特性:

  • 🔄 多主架构:所有节点对等,均可读写
  • 🔒 数据一致性:集群内部保证数据完整性
  • 同步复制:实时数据同步
  • 🛡️ 高可用性:自动故障转移

Galera Cluster架构图

支持的数据库:

  • MySQL
  • MariaDB
  • Percona Server

重要限制:

  • 仅支持InnoDB存储引擎
  • 不支持Lock Table操作

📚 官方资源

🚀 主要功能

核心能力

  • 🔄 同步复制:确保数据实时一致性
  • 🌐 真正的多主模式:所有节点可同时读写
  • 🔧 自动节点管理:失效节点自动清除
  • 📥 自动数据复制:新节点加入时自动同步数据
  • 并行复制:行级并行处理
  • 🔌 透明连接:用户体验与单机MySQL一致

✨ 技术优势

性能优势

  • 无延迟问题:多主架构消除了Slave延迟
  • 🔒 零事务丢失:同步复制确保数据安全
  • 📈 读写扩展:同时具备读写扩展能力
  • 🚀 低延迟:客户端响应时间更短
  • 🔄 数据同步:节点间数据实时同步(vs 传统异步复制)

🔧 实现架构

Galera集群的复制功能基于Galera library实现,为了让MySQL与Galera library通信,特别针对MySQL开发了wsrep API。

Galera Cluster实现架构图1

Galera Cluster实现架构图2

Galera Cluster实现架构图3

🔄 同步原理

节点角色

在Galera Cluster中:

  • Joiner:新接入的节点
  • Donor:为Joiner提供数据复制的节点

Galera Cluster同步原理图

参考节点架构

对于生产环境,建议设立专用的”参考节点”,该节点不执行任何客户端SQL请求。

Galera Cluster参考节点架构图

上图中红色的NODE A即为”参考节点”,具有以下优势:

🔒 数据一致性

  • 不执行客户端SQL,事务冲突可能性最小
  • 集群数据不一致时,参考节点数据最准确

🛡️ 数据安全性

  • 不执行客户端SQL,灾难事件可能性最小
  • 集群宕机时,是恢复集群的最佳节点

⚡ 高可用性

  • 可作为专门的state snapshot donor
  • SST过程不影响用户体验
  • 负载均衡设备无需重新配置

💡 最佳实践:在生产环境中强烈建议使用参考节点架构,以提高集群的稳定性和可维护性。