本博客讨论MySQL原生的两种架构:分组复制架构和NDB集群架构。这两种架构在之前的博客中有详细介绍。
一、MySQL分组复制架构
1.架构说明
MySQL Group Replication架构总体上还是一种基于复制的技术架构,可以轻松实现单主结构或者多主结构。每份数据存在于2个节点中,提供了数据安全保障的同时,节省了存储空间。主节点对外提供读写服务,而其它从结点仅仅提供只读服务。Group Replication内部实现了自动屏蔽故障主机的功能。
2.核心原理
MySQL Group Replication使用MySQL 内置插件的方式包含在MySQL发行版本中。
节点之间的事务决策机制采用分布式一致性算法PAXOS算法实现。任意两个节点之间建立专门的通信连接,用于探测节点是否存活以及数据传输。当主节点出现故障时,自动选举出新的主节点,同时让故障节点下线。
每份数据会自动复制到至少1个其它节点中,即每份数据至少存在于2个节点中,保障了数据的安全性。每个节点上存储的数据并不相同,即每份数据并不需要在每个节点上都存储。相比于PXC集群架构,Group Replication更加节省存储空间。
3.架构缺点
集群中节点数量目前限制为最多9个节点。集群的写事务的效率相对于单机系统有所降低。当出现节点故障时,可能导致数据重新分片(sharding),可能对集群造成影响。
4.适用场景
Group Replication适用于对事务一致性要求较高但是事务数据量不大的应用场合。
Group Replication不适合高并发的大量写事务的同时对写事务效率有较高要求的应用场合。
5.搭建环境
详见博客:http://www.cnblogs.com/coe2coe中的MySQL栏目。
6.故障转移
详见博客:http://www.cnblogs.com/coe2coe中的MySQL栏目。
二、MySQL NDB Cluster集群架构
1.架构说明
MySQL NDB Cluster集群架构使用了MySQL Group Replication技术和NDBCluster存储引擎的一种MySQL集群技术架构。这种集群中存在三种节点:管理节点、数据节点和SQL节点。
这种集群同样内置了自动检测故障主机并自动将故障主机下线并踢出集群的功能。
2.核心原理
NDB 集群中的管理节点负责集群的维护工作,包括节点的上线和下线以及节点状态监控等。数据节点负责数据的存储。SQL节点负责对外提供服务。
NDB Cluster集群架构与PXC架构相比,同样更加节省存储空间,因为NDB Cluster集群内部使用的跟MySQL Group Replication相似的数据分布方式。
3.架构缺点
NDB集群的最大缺点是只能使用NDBCluster存储引擎,不能使用Innodb 等其它存储引擎。
NDB集群要求每个表必须有一个主键,否则可能造成集群故障。
4.适用场景
NDB集群适用于对事务一致性要求较高但是事务数据量不大的应用场合。
NDB不适合高并发的大量写事务的同时对写事务效率有较高要求的应用场合。
5.搭建环境
详见博客:http://www.cnblogs.com/coe2coe中的MySQL栏目。
6.故障转移
详见博客:http://www.cnblogs.com/coe2coe中的MySQL栏目。
原文地址:https://www.cnblogs.com/coe2coe/p/9751612.html