低读低写并发、低数据量方案

方案一:双机高可用方案

1.数据库架构图

2.特点

一台机器A作为读写库,另一台B作为备份库;A库故障后B库作为读写库;A库恢复后A作为备库。

3.开发说明

此种情况下,数据源配置中的数据库IP地址,可采用虚拟的IP地址。虚拟IP地址由两台数据库机器上的keepalive配置,并互相检测心跳。当其中一台故障后,虚拟IP地址会自动漂移到另外一台正常的库上。

数据库的主备配置、故障排除和数据补全,需要DBA和运维人员来维护。而程序代码或配置并不需要修改。

具体配置可参考资料:

http://lizhenliang.blog.51cto.com/7876557/1362313

http://database.51cto.com/art/201012/237204.htm

http://gaoke.iteye.com/blog/2283890

4.适应场景

读和写都不高的场景(单表数据低于500万),双机高可用。

5.优缺点

优点是一个机器故障了可以自动切换;缺点是只有一个库在工作,读写并未分离,并发有限制。

方案二:主从结构方案

1.数据库架构图

2.特点

一台机器A作为写库,另一台B作为读库;A库故障后B库充当读写,A修复后,B库为写库,A库为读库。

3.开发说明

这种方案的实现,要借助数据库中间件Mycat来实现,Mycat的datahost配置如下(注意balance和writetype的设置)

select user()

项目开发中,要配置Mycat数据源,并实现对Mycat数据源的数据操作。数据库A和数据库B应该互为主从。数据库的主主配置、故障排除和数据补全,依然需要DBA和运维人员来维护。

4.适应场景

读和写都不是非常高的场景(单表数据低于1000万),高可用。比方案一并发要高很多。

5.优缺点

优点是一个机器故障了可以自动切换;读写分离,并发有了很大的提升。缺点是引入了一个Mycat节点,若要高可用需要引入至少两个Mycat。常规的解决方案是引入haproxy和keepalive对mycat做集群。

高读低写并发、低数据量方案

方案三:一主多从+读写分离

1.数据库架构图

2.特点

一个主写库A多个从库,当主库A故障时,提升从库B为主写库,同时修改C、D库为B的从库。A故障修复后,作为B的从库。

3.开发说明

项目开发中需要使用Mycat作为中间件,来配置主库和从库,核心配置如下:

select user()

主库A故障后,Mycat会自动把从B提升为写库。而C、D从库,则可以通过MHA等工具,自动修改其主库为B。进而实现自动切换的目地。

MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。

MHA相关知识请参考:

http://www.cnblogs.com/gomysql/p/3675429.html

4.适应场景

该架构适合写并发不大、但是读并发大的很的场景

5.优缺点

由于配置了多个读节点,读并发的能力有了质的提高。理论上来说,读节点可以多个,可以负载很高级别的读并发。当然,Mycat依然需要设计高可用方案。

高读写并发、低数据量方案

方案四:MariaDB Galera Cluster方案

1.数据库架构图

2.特点

多个数据库,在负载均衡作用下,可同时进行写入和读取操作;各个库之间以Galera Replication的方法进行数据同步,即每个库理论上来说,数据是完全一致的。

3.开发说明

数据库读写时,只需要修改数据库读写IP为keepalive的虚拟节点即可;数据库配置方面相对比较复杂,需要引入haproxy、keepalive、Galaera等各种插件和配置。

4.适用场景

该方案适合读写并发较大、数据量不是非常大的场景。

5.优缺点点

优点:1)可以在任意节点上进行读2)自动剔除故障节点3)自动加入新节点4)真正并行的复制,基于行级5)客户端连接跟操作单数据库的体验一致。6) 同步复制,因此具有较高的性能和可靠性。

缺点:1) DELETE操作不支持没有主键的表,没有主键的表在不同的节点顺序将不同2)处理事务时,会运行一个协调认证程序来保证事务的全局一致性,若该事务长时间运行,就会锁死节点中所有的相关表,导致插入卡住(这种情况和单表插入是一样的)。2)整个集群的写入吞吐量是由最弱的节点限制,如果有一个节点变得缓慢,那么整个集群将是缓慢的。为了稳定的高性能要求,所有的节点应使用统一的硬件。3)如果DDL语句有问题将破坏集群,建议禁用。4) Mysql数据库5.7.6及之后的版本才支持此种方案。

高读写并发、高数据量方案

方案五 数据库中间件

1. 数据库架构图

2.特点

采用Mycat进行分片存储,可以解决写负载均衡和数据量过大问题;每个分片配置多个读从库,可以减少单个库的读压力。

3.开发说明

此种情况,需要配置Haproxy、keepalive和mycat集群,每个分片上又需要配置一主多从的集群。每个分片上的完整配置,具体请参考方案三,可以简单地把方案三理解为一个分片结构。因此,配置和维护量都比较大。

4.适用场景

读写并发都很大并且数据量非常大的场景。

5.优缺点

优点:终极的解决高并发高数据量的方法。

缺点:配置和维护都比较麻烦,需要的软硬件设备资源大。

高可用MySQL_Mysql高可用架构相关推荐

  1. 支付宝的高可用与容灾架构演进

    http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=402390133&idx=1&sn=395cf6e500ea912f ...

  2. 如何构建高可用和可伸缩的架构?

    如何构建高可用和可伸缩的架构? 发表于2015-09-22 13:42| 4669次阅读| 来源CSDN| 5 条评论| 作者蒲婧 CTOCTO俱乐部CTO讲堂云存储七牛架构高可用 width=&qu ...

  3. MySQL高可靠_MySQL高可用与高可靠架构

    前言 数据库高可用是生产环境使用数据库必要条件,MySQL数据库通常使用复制技术实现.然MySQL复制本身存在很多的"坑"容易被忽视,导致一些开发或运维人员对于MySQL复制的可靠 ...

  4. 如果淘宝双十一架构用. Net Core,如何“擒住”高并发、高可用、低延迟?

    电商的秒杀和抢购,对我们来说,都不是一个陌生的东西.然而,从技术的角度来说,这对于Web系统是一个巨大的考验.当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要. 缓存技 ...

  5. oom 如何避免 高并发_微博短视频百万级高可用、高并发架构如何设计?

    本文从设计及服务可用性方面,详细解析了微博短视频高可用.高并发架构设计中的问题与解决方案. 今天与大家分享的是微博短视频业务的高并发架构,具体内容分为如下三个方面: 团队介绍 微博视频业务场景 &qu ...

  6. TCP接入层的负载均衡、高可用、扩展性架构

    转载自 TCP接入层的负载均衡.高可用.扩展性架构 一.web-server的负载均衡 互联网架构中,web-server接入一般使用nginx来做反向代理,实施负载均衡.整个架构分三层: 上游调用层 ...

  7. 微博短视频千万级高可用、高并发架构如何设计?

    作者:刘志勇,本文来自新浪微博视频平台资深架构师刘志勇在 LiveVideoStackCon 2018 讲师热身分享,并由 LiveVideoStack 整理而成. 本文从设计及服务可用性方面,详细解 ...

  8. GaussDB(for MySQL)如何在存储架构设计上做到高可靠、高可用

    摘要: GaussDB(for MySQL)通过ND算子下推解决存储节点和计算节点之间的传输速度,减少网络开销这个难题. 数据库作为高效稳定处理海量数据交易/分析的坚强数据底座,底层架构设计的重要性不 ...

  9. 架构应用之高可用、高复用

    架构应用之高可用.高复用 . 一.存储高可用 存储的高可用,主要是通过数据冗余的方式来实现高可用,复杂性主要是在如何保持数据一致性,复制延迟和网络中断都会带来数据不一致.主要考虑的就是,数据如何复制, ...

最新文章

  1. AE,按照属性值关系选择要素
  2. FPGA跨时钟域设计的一点总结
  3. oracle学习-存储过程返回一个值,和返回一个结果集
  4. BP神经网络预测实例
  5. java映射的概念_Java 反射 概念理解
  6. 二维码原来可以这样玩
  7. 95-38-140-Buffer-MappedByteBuffer
  8. 深圳职业技术学院计算机专业组代码,深圳职业技术学院代码是多少 有哪些优势专业...
  9. mysql查看和调整最大连接数
  10. HihoCoder - Floyd算法
  11. SQL 连接嵌套查询实验报告
  12. 注册网站域名多少钱_申请域名多少钱
  13. 如何用计算机名添加的打印机,如何添加打印机(如何在电脑上安装打印机)
  14. 计算机ppt以学校生活为主题的作文,校园生活为话题的作文(精选10篇)
  15. PHP fwrite和file_put_contents 性能对比测试
  16. 教程篇(7.0) 02. FortiGate安全 安全架构 ❀ Fortinet 网络安全专家 NSE 4
  17. React---什么是受控组件、非受控组件
  18. oracle中的双精度浮点,双精度扩展格式 (x86)
  19. python全套教程百度云-老男孩python全套视频教程百度云资源下载
  20. 从topcoder赚钱的方法

热门文章

  1. EventBus的使用(一看就懂)
  2. git 下载的文件与git上面的文件不相同的处理方法
  3. JAVA常见工具配置
  4. pdfh5.js 基于pdf.js和jQuery,web/h5/移动端PDF预览手势缩放插件。
  5. 2022-2028年中国喹烯酮行业市场研究及前瞻分析报告
  6. Jupyter Notebook 远程访问设置方法
  7. shell 边边角角
  8. shellinabox安装
  9. Android屏幕像素密度适配详解
  10. SQL Server 日期和时间相关的数据类型有两种