后端存储实战课
李玥
京东零售计算存储平台部资深架构师
立即订阅
3342 人已学习
课程目录
已更新 17 讲 / 共 26 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (2讲)
开篇词 | 从今天起,换种方式学存储
免费
课前加餐 | 电商系统是如何设计的?
创业篇 (7讲)
01 | 创建和更新订单时,如何保证数据准确无误?
02 | 流量大、数据多的商品详情页系统该如何设计?
03 | 复杂而又重要的购物车系统,应该如何设计?
04 | 事务:账户余额总是对不上账,怎么办?
05 | 分布式事务:如何保证多个系统间的数据是一致的?
06 | 如何用Elasticsearch构建商品搜索系统?
07|MySQL HA:如何将“删库跑路”的损失降到最低?
高速增长篇 (7讲)
08 | 一个几乎每个系统必踩的坑儿:访问数据库超时
09 | 怎么能避免写出慢SQL?
10 | 走进黑盒:SQL是如何在数据库中执行的?
11 | MySQL如何应对高并发(一):使用缓存保护MySQL
12 | MySQL如何应对高并发(二):读写分离
13 | MySQL主从数据库同步是如何实现的?
14 | 订单数据越来越多,数据库越来越慢该怎么办?
海量数据篇 (1讲)
15 | MySQL存储海量数据的最后一招:分库分表
后端存储实战课
登录|注册

13 | MySQL主从数据库同步是如何实现的?

李玥 2020-03-26
你好,我是李玥。
回顾我们之前讲 MySQL 相关的几节课程,你会发现主从同步有多重要。解决数据可靠性的问题需要用到主从同步;解决 MySQL 服务高可用要用到主从同步;应对高并发的时候,还是要用到主从同步。
我们在运维 MySQL 集群时,遇到的很多常见的问题,比如说,为什么从节点故障会影响到主节点?为什么主从切换之后丢数据了?为什么明明没有更新数据,客户端读到的数据还是变来变去的?这些都和主从同步的配置有密切的关系。
你不但要理解 MySQL 主从同步的原理,还要掌握一些相关配置的含义,才能正确地配置你的集群,知道集群在什么情况下会有什么样的行为,可能会出现什么样的问题,并且知道该如何解决。
今天这节课我们就来详细讲一下,MySQL 的主从同步是怎么实现的,以及如何来正确地配置主从同步。

如何配置 MySQL 的主从同步?

当客户端提交一个事务到 MySQL 的集群,直到客户端收到集群返回成功响应,在这个过程中,MySQL 集群需要执行很多操作:主库需要提交事务、更新存储引擎中的数据、把 Binlog 写到磁盘上、给客户端返回响应、把 Binlog 复制到所有从库上、每个从库需要把复制过来的 Binlog 写到暂存日志中、回放这个 Binlog、更新存储引擎中的数据、给主库返回复制成功的响应。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《后端存储实战课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(12)

  • 李玥 置顶
    Hi,我是李玥。

    这里回顾一下上节课的思考题:

    课后请你对照你现在负责开发或者维护的系统来分享一下,你的系统实施读写分离的具体方案是什么样的?比如,如何分离读写数据库请求?如何解决主从延迟带来的数据一致性问题?欢迎你在留言区与我讨论。

    课后很多小伙伴在留言区对这个问题做了回复,分离读写请求大多数采用的是代理或者Sharding-JDBC这两种方案。那解决主从延迟,没有完全避免延迟的方法,但至少要做到能够监控主从延迟,当延迟太大的时候,采用一些降级方案。比如说,把重要业务的读请求切回主库,暂停一些不重要的业务,甚至限流等等。
    2020-03-26
    4
  • leslie
    最典型的应当是VMware:其实复制技术不仅仅在linux系统的中间件存储 mysql、redis、ES上使用,Windows的sql server同样适用了此技术。
    2020-03-26
    5
  • 真飞鸟
    读完mysql实战45讲再读老师的文章感觉又复习了一遍 老师的文章很清晰 更加偏向实战中的配置了
    2020-03-27
    2
  • 一步
    MySQL 启用半同步复制,需要登录MySQL安装插件(或者修改配置文件)
    Linux: install plugin rpl_semi_sync_master soname 'semisync_master_so' (window 是 dll)
    从库使用的是 semisync_slave.so 文件

    这时候MySQL 会自动去 安装目录的 lib/plugin 文件夹下去找
    2020-03-26
    2
  • 渐渐迷失
    老师你好
    之前学mq的时候您课讲完了,我才进入学习的,有好些问题还不会,追过来问问可以吗

    作者回复: 建议你还是在MQ的课程中去提问,这样也便于其它同学查看。虽然课程已经更新完结,但我还是会关注并回答留言区的问题。

    2020-03-26
    1
  • 渔夫
    目前主流前端技术的状态管理也是这个状态机机制:state + action = next state
    2020-03-31
  • aoe
    复制状态机!原来这个理论这么强大!第一次听说,非常激动!感谢老师!
    2020-03-30
  • image
    fork and write,典型有docker镜像,linux fork都和复制状态机有关系,这也是一种基本的构建模式
    2020-03-26
  • 渐渐迷失
    我之前关于mq的发言上墙了 我就直接问了 之前mq的课程 讲生产者和消费者源码尤其namedservice部分讲透了 我还想了解下 mq在集群模式下 队列怎么分布,rocketmq 是否有镜像队列,脑裂后怎么处理,mq 集群对比es和redis这种读远大于写的集群有什么特点 求解答或者知识链接
    2020-03-26
    1
  • hhhh
    老师您讲过的消息队列应该也是这种模式
    2020-03-26
  • 夜空中最亮的星(华仔)
    老师带我们一起飞
    2020-03-26
  • 刘楠
    mongodb写大多数节点,和这个半同步有点一样,
    2020-03-26
收起评论
12
返回
顶部