浅谈 MySQL 集群高可用架构

转载 2018年01月05日 00:00:00
一,前言

高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用。对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能保证整个系统的高可用。对于数据库服务而言,高可用可能更复杂,对用户的服务可用,不仅仅是能访问,还需要有正确性保证,因此数据库的高可用方案是一直以来的讨论热点,今天就各种的高可用方案,谈一下个人的一些看法,如有错误,还请指正!!


二,MySQL 主从架构

此种架构,一般初创企业比较常用,也便于后面步步的扩展

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1
此架构特点:
1、成本低,布署快速、方便
2、读写分离
3、还能通过及时增加从库来减少读库压力
4、主库单点故障
5、数据一致性问题(同步延迟造成)


三,MySQL+DRDB 架构

通过 DRBD 基于 block 块的复制模式,快速进行双主故障切换,很大程度上解决主库单点故障问题

0?wx_fmt=png

此架构特点:
1、高可用软件可使用 Heartbeat, 全面负责 VIP、数据与 DRBD 服务的管理
2、主故障后可自动快速切换,并且从库仍然能通过 VIP 与新主库进行数据同步
3、从库也支持读写分离,可使用中间件或程序实现


四,MySQL+MHA 架构


MHA 目前在 Mysql 高可用方案中应该也是比较成熟和常见的方案,它由日本人开发出来,在 mysql 故障切换过程中,MHA 能做到快速自动切换操作,而且还能最大限度保持数据的一致性
0?wx_fmt=jpeg
此架构特点:
1、安装布署简单,不影响现有架构
2、自动监控和故障转移
3、保障数据一致性
4、故障切换方式可使用手动或自动多向选择
5、适应范围大(适用任何存储引擎)


五,MySQL+MMM 架构


MMM 即 Master-Master Replication Manager for MySQL(mysql 主主复制管理器),是关于 mysql 主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能基于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟 ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。
MySQL 本身没有提供 replication failover 的解决方案,通过 MMM 方案能实现服务器的故障转移,从而实现 mysql 的高可用。
0?wx_fmt=jpeg
此方案特点:
1、安全、稳定性较高,可扩展性好
2、 对服务器数量要求至少三台及以上
3、 对双主(主从复制性要求较高)
4、 同样可实现读写分离

推荐阅读:

技术:分布式事务架构实践

技术:分布式唯一ID极简教程

分享:2T架构师学习资料干货分享

觉得有帮助?请转发给更多人!

0?wx_fmt=png0?wx_fmt=png

架构师小秘圈,聚集10万架构师的小圈子!不定期分享技术干货,行业秘闻!汇集各类奇妙好玩的话题和流行动向!长按左侧图片,扫码加入架构师微信群!

MySQL高可用架构之MHA(可用)

简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,...
  • anzhen0429
  • anzhen0429
  • 2017年08月14日 20:57
  • 490

企业中MySQL主流高可用架构实战三部曲之MHA

老张最近两天有些忙,一些老铁一直问,啥时更新博文,我可能做不到天天更新啊,但保证以后一有空就写一些干货知识分享给大家。 我们如果想要做好技术这项工作,一定要做到理论与实践先结合。我一个曾经被数据...
  • yjh1271845364
  • yjh1271845364
  • 2017年08月04日 19:20
  • 884

企业中MySQL高可用集群架构三部曲之MM+keepalived

各位老铁们,老张与大家又见面了。看到各位在博客里面给我的留言和访问量的情况,我很是欣慰,也谢谢大家对我的认可。我写这些博客,就是想把自己对于MySQL数据库的一些看法和自己平时的实战经验分享出来,我们...
  • yjh1271845364
  • yjh1271845364
  • 2017年08月04日 19:19
  • 468

Mysql高可用架构设计

什么是高可用 导致不可用的可能因素 如何实现高可用 如何避免单点故障 MMM架构介绍 MHA架构介绍 读写分离和负载均衡介绍 MaxScale的使用和安装什么是高可用高可用指的是通过尽量缩短因日常维护...
  • liuzp111
  • liuzp111
  • 2017年01月12日 22:38
  • 1004

saltstack的HA高可用架构方案

saltstack集群管理简介:saltstack的常规方案为 ‘单master-多minions’ 架构 ,如下图左,对批量节点进行管理和操作;在较大规模的集群系统下,常用的为三层架构,‘单mast...
  • U201017971
  • U201017971
  • 2017年12月20日 11:28
  • 260

MySQL 高可用架构实战

基于 MySQL5.7, Semisynchronous Replication(MySQL 半同步复制), Keepalived, MHA 的 MySQL 高可用方案 MySQL, 用得最多最广泛的...
  • crasheye
  • crasheye
  • 2016年05月23日 09:22
  • 345

主流MySQL集群实现架构优劣势与适用场景分析

本文主要分析总结了目前主流的几种MySQL集群架构实现方法及优缺点,现发出来以供大家参考学习、共同进步,如有不妥之处,请不吝赐教~ 一、主从复制架构MHA MHA即Master High Avai...
  • u012974916
  • u012974916
  • 2016年11月10日 18:48
  • 4911

在Linux下创建低成本、高性能、高可用的Web服务集群系统

在Linux下创建低成本、高性能、高可用的Web服务集群系统Linux Virtual Server    简称LVS,基于Linux系统的服务器集群解决方案工具    ipvsadm--LVS的一个...
  • ilovemilk
  • ilovemilk
  • 2007年11月05日 21:44
  • 887

Memcached 集群的高可用(HA)架构

Memcache自身并没有实现集群功能,如果想用Memcahce实现集群需要借助第三方软件或者自己设计编程实现,这里将采用memagent代理实现,memagent又名magent,大家注意下,不要将...
  • liu251890347
  • liu251890347
  • 2014年08月07日 10:26
  • 5168

私有云落地解决方案之openstack高可用(pike版本)-架构

作者:【吴业亮】博客:/wylfengyujiancheng本架构借鉴redhat架构1、API 服务:包括 *-api, neutron-server,gla...
  • wylfengyujiancheng
  • wylfengyujiancheng
  • 2017年11月27日 22:15
  • 830
收藏助手
不良信息举报
您举报文章:浅谈 MySQL 集群高可用架构
举报原因:
原因补充:

(最多只允许输入30个字)