快捷搜索: 王者荣耀 脱发

MySQL主从的异步复制、全同步复制与半同步复制

好文推荐:

一、异步复制(relay_log)有两种实现方式: (1)主库dump线程异步通知:主库有一个 dump 线程,专门负责给从库发送新的 binlog,主库记录完 binlog 后,只会通知 dump 线程去发送,并不关心发送是否成功。 (2)从库主动监听:从库监听主库的 binlog,并写入自身的 relay_log 中。 因为是异步复制,无法做到实时同步,只能达到最终一致性;可以多个从库共同监听主库,可以抽一个从库专门做中转节点【 这篇文章提到说是为了减轻主库压力,主库只是被多个从库监听,为什么也会有“压力大”一说?】。

二、全同步复制 顾名思义,是写主库的时候,同步写从库,如果有多个从库,那么需要多个从库都成功,主库才能写成功;一看就知道慢,但能达到实时同步,强一致性。

三、半同步复制 在“全同步复制”的基础下做了折中,主库不用等所有从库成功,它只负责跟其中一个从库同步复制,它成功了主库就完成任务了,至于其他的从库,去跟这个从库来做同步。

经验分享 程序员 微信小程序 职场和发展