美文网首页程序员
分布式专题|Mysql主从复制的三种方式你应该要了解的!

分布式专题|Mysql主从复制的三种方式你应该要了解的!

作者: AI码师 | 来源:发表于2020-11-23 07:17 被阅读0次

    继续我们前面我们搭建了Mysql主从复制架构,我们今天来介绍主从复制的三种方式,这在面试过程中也是会被经常问到的:

    同步复制

    同步复制指得是当主库提交事务后,binlog已经通过dump线程传到从库的中继日志,主库需要一直等待从库的提交确认,从库重放完成之后,回复一个ACK给主库,主库这才结束等待,执行后续操作,注意:如果这个时候有多个从节点,那么主库等待的时间就越久,所以需要设置一个超时等待时间。

    在这里插入图片描述

    异步复制

    异步复制模式为了解决主库等待时间过长的问题,将返回确认取消了,也就是说当主库提交完事务后,不需要等待从库提交确认,就直接执行后续操作,返回客户端; 但是这个就会造成这样一个问题:当主机提交完事务后挂了,但是这个时候binlog还没有同步到从库,如果强制切换主从的话,就会造成新的主库数据不完整

    在这里插入图片描述

    半同步复制

    半同步方式介于同步和异步复制方式做了一个折中: 同样主库还是需要等待从库的确认后才执行后续操作,但是不同的是这次不是等待从库提交完事务后,才发一个确认通知给主库,而是当从库将binlog写到relaylog后,就会给主库发送确认通知,这个不仅缩短了等待时间而且还维护了数据的安全性

    在这里插入图片描述

    增强半同步复制

    在半同步复制情况下如果有这样一个情况:当主库提交完事务之后,就开始等待从库的relay写入返回,如果从库这个时候发生了意外(有可能被人偷走了),导致主库等待超时,这个时候主库就会直接结束等待了,因为事务已经提交了,用户肯定是可以看到没有被同步的数据,为了解决这个问题,mysql5.7引入了增强半同步复制: 只有当收到至少一个从库返回的relay log写入确认后,才提交事务,也就是说提交事务在收到确认之后

    在这里插入图片描述

    相关文章

      网友评论

        本文标题:分布式专题|Mysql主从复制的三种方式你应该要了解的!

        本文链接:https://www.haomeiwen.com/subject/rghmiktx.html