MySQL 高可用架构

在考虑MySQL数据库的高可用架构时,主要从以下几个方面进行考虑:

  1. 如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断。
  2. 用作备份、只读副本等功能的非主节点的数据应该和主节点的数据实时或者最终保持一致。
  3. 当业务发生数据库切换时,切换前后的数据库内容应当一致,不会因为数据缺失或者数据不一致而影响业务。

说到MySQL的高可用,不得不提到复制,复制是MySQL高可用的基础。以下是“复制”解决的问题:

  1. 实现数据备份
  2. 如果有从服务器,主服务器发生故障之后,开通从服务器的写入功能,从而提供高可用的使用功能
  3. 异地容灾
  4. 分摊负载(scale out )主服务器:写、从服务器:读

主从复制流程

不同的复制协议:

高可用复制架构

Mysql 高可用架构

MySQL Cluster架构

限制存储引擎为NDB存储引擎:

MySQL+MMM架构

MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器),是关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能基于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。
 MySQL本身没有提供replication failover的解决方案,通过MMM方案能实现服务器的故障转移,从而实现mysql的高可用。

此方案特点:

  1. 安全、稳定性较高,可扩展性好
  2.  对服务器数量要求至少三台及以上
  3.  对双主(主从复制性要求较高)
  4. 同样可实现读写分离

MySQL+MHA架构

MHA目前在MySQL高可用方案中应该也是比较成熟和常见的方案,它由日本人开发出来,在MySQL故障切换过程中,MHA能做到快速自动切换操作,而且还能最大限度保持数据的一致性。

此架构特点:

  1. 安装布署简单,不影响现有架构
  2. 自动监控和故障转移
  3. 保障数据一致性
  4. 故障切换方式可使用手动或自动多向选择
  5. 适应范围大(适用任何存储引擎)

小结

随着人们对数据一致性的要求不断的提高,越来越多的方法被尝试用来解决分布式数据一致性的问题,如MySQL自身的优化、MySQL集群架构的优化、Paxos、Raft、2PC算法的引入等等。

而使用分布式算法用来解决MySQL数据库数据一致性的问题的方法,也越来越被人们所接受,一系列成熟的产品如PhxSQL、MariaDB Galera Cluster、Percona XtraDB Cluster等越来越多的被大规模使用。

随着官方MySQL Group Replication的GA,使用分布式协议来解决数据一致性问题已经成为了主流的方向。期望越来越多优秀的解决方案被提出,MySQL高可用问题可以被更好的解决。

发布了6 篇原创文章 · 获赞 1 · 访问量 655

猜你喜欢

转载自blog.csdn.net/DY1316434466/article/details/105439633