在以前, 数据库的集群配置一直很难, 难点在于 MySQL 主从结构的高可用和读写分离. 万幸的是, Galera/GR 的出现, 让整个集群的配置都极大程度地简化了.
以下是一个简单的 MySQL 集群拓扑图:
1.MySQL 中间件: 对 MySQL Server 的读写操作进行路由 (即读写分离); 分库分表 (sharding)
(1).MySQL Router:MySQL 官方提供的轻量级 MySQL 代理 (路由), 只提供读写分离功能, 前身为 SQL Proxy.
(2).ProxySQL: 类似于 MySQL Router, 轻量级 MySQL 代理, 提供读写分离功能, 也支持一些 sharding 功能. 有 percona 版和官方版两个版本.
(3).MaxScale:MariaDB 的中间件, 和 MySQL Router,ProxySQL 类似.
这三者类似, 都是轻量级数据库中间件.
(4).Amoeba,Cobar,MyCAT: 提供很多功能, 最主要的功能包括读写分离, sharding.
这三者的渊源较深, 都是开源的. Amoeba 后继无人, 于是 Cobar 出来, Cobar 后继无人, 加上 2013 年出现了一次较严重的问题, 于是 MyCAT 站在 Cobar 的肩膀上出来了.
2.MySQL 主从复制的高可用: 至少要实现主从切换或故障时选举新 master 节点
(1).MMM: 淘汰了, 在一致性和高并发稳定性等方面有些问题.
(2).MHA: 有些人还在用, 但也有些问题, 也是趋于淘汰的 MySQL 主从高可用方案.
(3).Galera: 引领时代的主从复制高可用技术.
(4).MariaDB Galera Cluster:MariaDB 对 Galera 的实现.
(5).PXC:Percona XtraDB Cluster, 是 Percona 对 Galera 的自我实现, 用的人很多.
(6).GR:Group Replication,MySQL 官方提供的组复制技术 (MySQL 5.7.17 引入的技术), 基于 Paxos 算法.
MariaDB Galera Cluster,PXC,GR 是类似的, 都各有优点. 但 GR 是革命性的, 基于原生复制技术, 据传很多方面都优于 PXC.
MariaDB Galera Cluster,PXC,GR 为了安全性和性能考虑, 做出了很多强制性的限制. 例如基于 GTID 复制, 只能 InnoDB 表, 每表都必须有主键等. 要使用它们提供主从复制的高可用, 必须要了解它们的各项限制.
Linux 公社的 RSS 地址: https://www.linuxidc.com/rssFeed.aspx
来源: http://www.linuxidc.com/Linux/2018-07/153083.htm