前言

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

MySQL主从架构

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

此架构特点:

1、成本低,布署快速、方便

2、读写分离

3、还能通过及时增加从库来减少读库压力

4、主库单点故障

5、数据一致性问题(同步延迟造成)

MySQL+DRDB架构

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

此架构特点:

1、高可用软件可使用Heartbeat,全面负责VIP、数据与DRBD服务的管理

2、主故障后可自动快速切换,并且从库仍然能通过VIP与新主库进行数据同步

3、从库也支持读写分离,可使用中间件或程序实现

MySQL+MHA架构

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

此架构特点:

1、安装布署简单,不影响现有架构

2、自动监控和故障转移

3、保障数据一致性

4、故障切换方式可使用手动或自动多向选择

5、适应范围大(适用任何存储引擎)

MySQL+MMM架构

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

此方案特点:

1、安全、稳定性较高,可扩展性好

2、 对服务器数量要求至少三台及以上

3、 对双主(主从复制性要求较高)

4、 同样可实现读写分离

MySQL Cluster架构

Mysql官方推出的集群高可用方案,由于本人没有用过,不好评价

摘自网络上的一段解释

MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括 MySQL服务器,NDB Cluster的数据节点,管理服务器,以及(可能)专门的数据访问程序。 
 由于MySQL Cluster架构复杂,部署费时(通常需要DBA几个小时的时间才能完成搭建),而依靠 MySQL Cluster Manager 只需一个命令即可完成,但 MySQL Cluster Manager 是收费的。并且业内资深人士认为NDB 不适合大多数业务场景,而且有安全问题。因此,使用的人数较少。

mysql集群高可用架构的更多相关文章

  1. 浅谈MySQL集群高可用架构

    前言 高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能 ...

  2. MySQL集群高可用

    目录 MySQL高可用 Galera Cluster Galera Cluster Galera Cluster特点 Galera Cluster 缺点 Galera Cluster工作过程 Gale ...

  3. MySQL数据库的优化(下)MySQL数据库的高可用架构方案

    MySQL数据库的优化(下)MySQL数据库的高可用架构方案 2011-03-09 08:53 抚琴煮酒 51CTO 字号:T | T 在上一篇MySQL数据库的优化中,我们跟随笔者学习了单机MySQ ...

  4. MySQL系列:高可用架构之MHA

    前言 从11年毕业到现在,工作也好些年头,入坑mysql也有近四年的时间,也捣鼓过像mongodb.redis.cassandra.neo4j等Nosql数据库.其实一直想写博客分享下工作上的零零碎碎 ...

  5. Rabbitmq集群高可用测试

    Rabbitmq集群高可用 RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡. Rabbit模式大概分为以下三种:单一模式.普通模 ...

  6. bitmq集群高可用测试

    Rabbitmq集群高可用 RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡. Rabbit模式大概分为以下三种:单一模式.普通模 ...

  7. 集群高可用之lvs+keepalive

    集群高可用之lvs+keepalive keepalive简介: 负载均衡架构依赖于知名的IPVS内核模块,keepalive由一组检查器根据服务器的健康情况动态维护和管理服务器池.keepalive ...

  8. hadoop+zookeeper集群高可用搭建

                                                                  hadoop+zookeeper集群高可用搭建 Senerity 发布于 2 ...

  9. RabbitMQ从零到集群高可用(.NetCore5.0) -高可用集群构建落地

    系列文章: RabbitMQ从零到集群高可用(.NetCore5.0) - RabbitMQ简介和六种工作模式详解 RabbitMQ从零到集群高可用(.NetCore5.0) - 死信队列,延时队列 ...

随机推荐

  1. Python学习日记(十八) 序列化模块

    什么是序列? 就是每一个元素被有序的排成一列 什么是序列化? 就是将原本的列表.字典等内容转化成字符串的过程 什么时候会用到序列化? 数据存储(把数据放在文件.数据库),网络传输等 序列化的目的 1. ...

  2. Nginx 配置 HTTPS(多域名)

    平常开发要求比较低, 依然在用 HTTP, 但到了微信小程序就不行了, 腾讯和苹果都对 API 提出了 HTTPS 的要求. 尤其是苹果, 不仅要求 HTTPS, 还要求 TLS 协议版本要在 1.2 ...

  3. zabbix Server 4.0监控Flume关键参数

    zabbix Server 4.0监控Flume关键参数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Flume本身提供了http, ganglia的监控服务.当然我们也可以使用 ...

  4. 安装配置KVM虚拟化

    安装KVM虚拟化 KVM需要硬件⽀持, 所以需要开启虚拟化⽀持 硬件设备直接在BIOS设置开启CPU虚拟化 个⼈电脑同样进⼊BIOS开启虚拟化⽀持 VM需要找到对应虚拟机开启对应的VT-EPT虚拟化技 ...

  5. MySQL数据库机房裁撤问题总结

    背景:公司某一机房需要裁撤,涉及到大量DB服务器,需要在裁撤截止日期以前完成业务的平滑迁移和设备退还工作. 历时2个多月,经历了设备梳理.裁撤资源评估.裁撤资源申请.裁撤DB部署.裁撤DB业务关系梳理 ...

  6. c#中关于textbox换行

    要让一个Windows Form的TextBox显示多行文本就得把它的Multiline属性设置为true. 这个大家都知道,可是当你要在代码中为Text属性设置多行文本[的时候可能会遇到点麻烦:) ...

  7. javaWeb的HttpServletRequest和HttpServletResponse

    HttpServletRequest HttpServletRequest对象是封装了用户的请求信息,包括请求参数去,请求头等信息,service()f方法中的两个HttpServletRequest ...

  8. 虚拟机安装Linux从零到登陆成功教学

    1.Linux Linux使我们出来windows以外可能接触最多的操作系统了,因为好多超级大的互联网公司,比如阿里等就是用Linux的,所以我们最起码要知道怎样去使用,使用的前提就是我们要有一个这样 ...

  9. RestTemplate将字符串以文件的方式上传

    背景 在java后台将内容拼接为字符串,然后使用RestTemplate将字符串以文件的方式上传到指定接口 思路 使用 RestTemplate 时,将字符串封装为字节流,然后上传 代码 /** * ...

  10. linux下新磁盘创建lvm、扩容lvm

    1.首先查看磁盘fdisk -l2.进入磁盘fdisk /dev/sdbn 创建新磁盘p 创建主分区创建分区ID 1-4为主分区根据提示选择磁盘开始位置(默认空格就好)选择结束位置(新增磁盘大小)t ...