MySQL集群模式选择

没有最好,只有最适合,根据实际需求和条件选择最适合自己业务系统的就是最好的。

 

1、MySQL主从模式

传统Master-Slave模式,可实现读写分离,数据备份;

局限:需手动切换数据库

 

2、MySQL主主模式+keepalive

两套DB互为主从,结合配置keepalive,故障自动切换,以实现高可用;

 

4、MySQL之MMM

MMM:Master-Master replication manager for MySQL

一套支持双主故障切换和双主日常管理的脚本程序

特性:实现故障切换和多slave的read负载均衡

局限:MMM无法完全保证数据一致性;monitor为单节点(可以结合keepalive实现高可用);不支持分片

适用:对数据一致性要求不高,对业务可用性要求高

 

3、MySQL之MHA

MHA:Master High Availability

实现:分MHA Manager和MHA Node,一般一主多从,主down备同步主数据后升级为主;

特性:故障切换时间0-30s

局限:如果主机硬件故障,则只进行故障转移,可能丢失最新数据;不支持分片

 

5、MySQL Cluster

官方集群方案,支持通过自动分片支持读写扩展,实时备份冗余数据,高可用;

NDB Management Server:管理其他节点,配置、停启node;

SQL Node:集群访问入口

Data Node:数据分片存储

局限:修改表引擎为NDB,只支持Read Committed事务,即只可读事务提交后的数据,事务进行中的数据被锁,无法查询;

PS:四种事务隔离级别:

Serializable(串行化):事务串行化执行,事务只能一个接着一个地执行,而不能并发执行。

Repeatable Read(可重复读):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录,但是不能看到其他其他事务对已有记录的更新。

Read Commited(读已提交数据):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录,而且能看到其他事务已经提交的对已有记录的更新。

Read Uncommitted(读未提交数据):一个事务在执行过程中可以看到其他事务没有提交的新插入的记录,而且能看到其他事务没有提交的对已有记录的更新。

 

6、MySQL Fabric

实现:通过Fabric的connector组件连接到主备服务器集群,主down备自动升级为主;

特性:高可用、以数据分片实现可扩展和负载均衡

局限:备库通过同步复制(同传统的主从复制)实现数据冗余;事务和查询只支持在同一分片内,更新的数据不能跨片,查询返回的数据页不能跨片。

 

7、Galera Cluster

号称世界上最先进的开源数据库集群方案

特性:多服务器同时读写(无延迟复制、无丢失);主down备自动接管;新增服务器时数据自动复制。

局限:对网络传输和并发有一定消耗,各服务器数据全冗余,不支持的SQL:LOCK / UNLOCK TABLES / GET_LOCK(), RELEASE_LOCK()…不支持XA Transaction

实现方案:

Galera Cluster for MySQL

Percona XtraDB Cluster 较成熟

MariaDB Galera Cluster

 

8、推荐尝鲜TiDB

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值