MySQL 主从复制

一般情况下,线上每个 Redis 实例都包含从库,用来做读写分离,减轻主库的压力

MySQL 的主从复制默认是异步的,其主要流程如下:

  1. 从节点的 I/O 线程连接主节点,并请求指定 bin log file 指定 position 之后的日志内容
  2. 主节点收到请求后,读取并返回。返回信息除了包含日志内容外还包含 bin log file 信息和 position 信息
  3. 从节点的 I/O 线程收到返回后,将接收到的日志内容更新到 relay log,并将 bin log file 信息和 position 信息 记录到 master-info 文件中,以便下一次读取的时候接上上次的进度继续
  4. 从节点的 SQL 线程检测到 relay log 中新值了欣荣,解析日志内容,并在数据库执行

异步复制场景下,主库突然宕机,此时从库还有部分数据未同步,可能导致数据丢失,为了解决该问题,可以改使用半同步复制或全同步复制:

半同步复制:对于客户端的请求,sql 写入 bin log 后,不会立即返回,而是通过 log-dump thread 主动发送从节点,从节点收到并 relay log 后返回主节点 ACK,主节点只有收到 ACK 后再返回客户端执行成功

特点

  1. 确保 bin log 至少传输到一个从库
  2. 不保证从库完成这个事务的 binlog,写入 relay log 就返回
  3. 性能有影响,响应时间更差
  4. 万一从库宕机,主库只能等待超时或从库恢复

全同步复制:主节点和所有从节点全部执行了该事务并确认才会向客户端返回成功。

全同步复制相对效率更差,因为它需要所有从库都同步完成才返回客户端 ACK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值