谢邀,这是个好问题,而且这个问题好在即使概念非常容易理解,但是这几个不同的概念细节太多太多,而且理解了概念,自己要用,又需要做很多的调研评估和开发工作。作为在这个领域爬坑多年的人,我这里就先介绍下概念,再提供几个开源工具和云服务吧。

先来说这些架构解决的问题吧,传统数据库如Mysql(以下工具也会以Mysql为主),存在的问题就是单机部署,单进程,这样就存在一些问题:资源利用不灵活,有可能cpu的性能还有富余,但是磁盘已经顶不住读压力或写压力了,有可能磁盘的性能还有富余,但是cpu的性能已经顶不住了。还有可能cpu和磁盘都很富余,但是写入的数据量太大,直接撑爆磁盘上限。

资源有最大上限,cpu最多用到比如64核的机型,磁盘最高几百T,再高的话不好意思,没有更屌的机器了,但是用户的数据和查询是没有上限的。

连接池资源的上限,为何要把连接池单独提出来说,原因就是业务量一大,

容灾类的问题,虽然事务可以保证重启后数据不丢,但是业务线上跑,重启等不起。

而这个问题所提的几个概念,正是对如上传统数据库痛点的解决方法。主从复制(replication),解决的是容灾类的问题,容灾需要保证数据库切换的实时性和数据的一致性,一致性的强弱还催生了几种不同的复制模式(asynchronous, semisynchronous, group replication)

读写分离(read write spliting),是一种业务类应用解决读流量单机无法承受的方式,学名叫 scale out ,读写分离类的业务是架设在主从复制的基础上

负载均衡 ( load balance),也是一个非数据库的概念,但是在数据库层面,如果有一个通用的中间层,那么也适用。

这三者的关系基本可以参考这几幅图:

这幅图的load balance做在了业务层,而读写的路由逻辑由业务层在控制。

这幅图,则由一个通用的中间层解决了读写分离的问题,顺便也做了数据库的负载均衡,从这里看出读写分离是数据库负载均衡的一种解决方式

那么第三步,如何使用这些特性呢,这几个特性是好的,但是要使用这些特性,会同时带来很多的问题,而且先提前声明一句,目前没有完美的解决方案,问题如下:之前只要管启动数据库进程还有挂掉重启即可,现在还得设置好复制通道,设置容灾方式,如何切换,如何回切

读写分离还需要配置中间层,中间层要感知复制通道的方向,感知复制拓扑,还得在切换主从的时候把写切换过去

最后到了介绍现成工具的时间了,主要推荐以下三款proxy类工具:

Haproxy,Maxscale以及Sqlproxy

提供的方法大同小异,有的能够通过proxy来建立复制通道,通过proxy来容灾,自包含,可以大大简化运维类的工作量。比较推荐使用Proxy模式来做读写分离,而不是业务中间件的形式(如TDDL),因为业务中间件的侵入性比较高,容灾和复制通道仍然需要依赖运维手工,而现在比较好的proxy类读写分离工具,很多都是自包含的,可以自动建立复制通道。

最后,至于分库分表,这是一个更大的命题了,可以参考我的专栏文章:浅谈分布式数据库该如何学习和实践 上篇

mysql读写分离和组复制_数据库主从复制,读写分离,负载均衡,分库分表分别表达的什么概念?...相关推荐

  1. mysql库垂按照模块_前任都能看懂的分库分表方案

    我们都知道,随着业务量的增长,数据量也会随之增加,这个时候就需要关注业务大表,因为大表会影响查询性能,DDL变更时间很长,影响业务的可用性,同时导致从库延迟很大,如果业务做了读写分离,导致用户重复操作 ...

  2. 数据库查询某一列大写转化小写字母表示_基于MySQL数据库下亿级数据的分库分表...

    每天给你诚意满满的干货 本文来自程序之心知乎专栏收到的投稿 作者:恒生研究院 移动互联网时代,海量的用户数据每天都在产生,基于用户使用数据等这样的分析,都需要依靠数据统计和分析,当数据量小时,数据库方 ...

  3. 基于MySQL数据库下亿级数据的分库分表

    来自:www.cnblogs.com/jpfss/ 移动互联网时代,海量的用户数据每天都在产生,基于用户使用数据等这样的分析,都需要依靠数据统计和分析,当数据量小时,数据库方面的优化显得不太重要,一旦 ...

  4. 不用Oracle?基于MySQL数据库下亿级数据的分库分表

    墨墨导读:本文以一个实际的项目应用为例,层层向大家剖析如何进行数据库的优化.项目背景是企业级的统一消息处理平台,客户数据在5千万加,每分钟处理消息流水1千万,每天消息流水1亿左右. 数据库在金融行业怎 ...

  5. mysql sharding 知乎_分库分表系列(1)-shardingsphere核心概念

    欢迎关注公众号: 戏说码农职场 咱们不闲扯, 就直接入正题, 这次总结说下sharding-jdbc 分库分表的工具.整体架构 Apache ShardingSphere 是一套开源的分布式数据库中间 ...

  6. mysql语句:索引,游标,存储过程,视图,分区,分库分表,数据库集群,数据库负载均衡...

    为什么80%的码农都做不了架构师?>>>    学会数据库是很实用D~~记录一些常用的sql语句...有入门有提高有见都没见过的...好全...收藏下... 其实一般用的就是查询,插 ...

  7. MySQL8高级_读写分离和分库分表

    MySQL8高级_读写分离和分库分表 第01章 高性能架构模式 互联网业务兴起之后,海量用户加上海量数据的特点,单个数据库服务器已经难以满足业务需要,必须考虑数据库集群的方式来提升性能.高性能数据库集 ...

  8. 【Spring Boot 实战】数据库千万级分库分表和读写分离实战

    一. 前言 前几天时间写了如何使用Sharding-JDBC进行分库分表和读写分离的例子,相信能够感受到Sharding-JDBC的强大了,而且使用配置都非常干净.官方支持的功能还很多功能分布式主键. ...

  9. Mycat 读写分离+分库分表

    上次进过GTID复制的学习记录,已经搭建好了主从复制的服务器,现在利用现有的主从复制环境,加上正在研究的Mycat,实现了主流分布式数据库的测试 Mycat就不用多介绍了,可以实现很多分布式数据库的功 ...

最新文章

  1. 数据结构—什么是基数排序?
  2. C# lambda与表达式树
  3. Win11正式版版号 Win11正式版最新版本号介绍
  4. free 和 fclose
  5. Jibun 银行:一家纯网络银行,利用智能手机打开金融服务领域的新天地
  6. 在可部署到brew真机上的程序包构建完之后又要如何将该程序包发布到真机上呢...
  7. Latex安装与使用
  8. 重装系统显示缺少计算机所需的介质驱动程序,安装WIN7提示“缺少所需的CD/DVD驱动器设备驱动程序”的解决办法...
  9. 申请免费SSL证书教程之华为云20张免费证书
  10. Docker:架构分解
  11. 福利来了 | 开发者社区布道师计划,奖品丰厚
  12. 【PyTorch】50行代码实现GAN——PyTorch
  13. 【杂篇 · 电脑】买Macbook之后的一些记录
  14. 凉凉,第1个倒闭的投资项目,比呀比,海外直邮电商
  15. 车间有毒有害气体监控系统项目案例
  16. js 比较两个日期的大小
  17. Django view(视图)
  18. 编译32/64位OpenCASCADE的详细步骤
  19. 启明星系统登陆后,无法进入后台
  20. 博弈的三个巨人 巴什博奕 威佐夫博奕 尼姆博奕

热门文章

  1. 自考之——我看《软件开发工具》
  2. win7如何配置access数据源
  3. 某学校学生在计算机等级水平测试中,提高中职学校计算机等级考试(一级)通过率的教学策略研究...
  4. python图片-Python中的十大图像处理工具
  5. python表白对话框-python会话框
  6. php和python哪个用了开发web好-web开发选择Python还是PHP好呢?
  7. python画三维立体图-如何在论文中画出漂亮的插图?
  8. 怎么学python-如何轻松学习Python数据分析
  9. python爬虫图片-如何用Python来制作简单的爬虫,爬取到你想要的图片
  10. python手机版ios-iOS 项目中如何使用 Python