字节一面:数据库主从架构数据同步方式有哪些?

科技   2024-11-19 16:42   河北  

前言

大家好,我是华仔

最近有位粉丝去面试字节,问到这么一道题:数据库主从架构数据同步的方案有哪些?你们公司用的是哪种方式,为什么,有哪些优缺点?

1. 主从同步的方式

MySQL主从同步类型主要有三种:

  • 异步复制
  • 同步复制
  • 半同步复制

1.1 异步复制

  • 主库(Master)在执行完客户端提交的事务后,会立即将结果返回给客户端,并不关心从库(Slave)是否已经接收并处理。
  • 从库会异步地读取主库的二进制日志(binlog),并将其应用于自身的数据库中。
  • MySQL的同步方式默认是异步复制

异步复制的优点

  • 高性能:事务提交快速,主服务器无需等待从服务器响应。
  • 低延迟:客户端请求处理迅速,减少等待时间。

异步复制的缺点

  • 数据一致性风险:主服务器故障可能导致从服务器数据不完整或不一致。
  • 故障恢复复杂:从服务器升级为主服务器时可能需要额外数据恢复操作。

1.2 同步复制

MySQL的同步复制是指主服务器在提交事务时,必须等待所有从服务器都确认已经接收到并应用了这些事务,然后主服务器才会提交事务并返回成功给客户端。这种方式确保了主从服务器之间的数据完全一致。

同步复制的优点

  • 数据一致性:确保主从服务器数据完全一致。
  • 高可靠性:在主服务器故障时,从服务器可无缝接管。

同步复制的缺点

  • 性能下降:主服务器需等待从服务器确认,可能导致事务提交延迟。
  • 资源消耗:增加网络、CPU和内存等资源消耗。

1.3 半同步复制

在半同步复制中,主库在提交事务之前,会等待至少一个从库确认已经接收到并记录了该事务的二进制日志。主库收到确认信息后,才会正式提交事务。这种方式旨在减少主库发生故障时的数据丢失风险,并在一定程度上提高复制的可靠性。

半同步复制的优点

  • 数据安全性提高:确保至少一个从库接收到事务日志,减少数据丢失风险。
  • 性能与安全的平衡:相较于全同步复制,对性能影响较小,同时提供更高的数据安全性。

半同步复制的缺点

  • 性能开销:主库需等待从库确认,可能增加事务提交延迟。
  • 配置复杂性:需要额外的配置和监控,确保主从库同步稳定。

其实我以前公司,使用的就是半同步复制方式~~ 因为我们是金融公司,所以对数据的安全性要求花式比较高的,就采用半同步复制,而不是异步复制~~

最后

其实,mysql主从相关的八股文考点,还有很多,比如数据库主从延迟的原因与解决方案有哪些?MySQL是怎么保证主从一致的等等,你们知道怎么回答嘛


最后推荐下两个不错的产品感兴趣的可以
上车了,这里只吸引同频的人,如果加入几分钟
就直接退出的就不要来了,浪费我的名额。

第一个来自码哥的小报童,仅需 19 元,火热更新中
,需要的可以扫码加入。

本专栏内容涵盖 Java 基础、Java 高级进阶、Redis、MySQL、消息中间件、微服务

架构设计等面试必考点、面试高频点。本专栏不只是单纯教大家学会背八股文知识,

更多是结合实际大厂高并发项目的场景,去学习面试技术要点。从面试官的角度去出

发,介绍互联网 Java 流行技术体系各个面试要点。

本专栏适合于准备进阶 Java 后端技术、有面试或提升技术需求,希望学习互联网大

厂 Java 流行技术体系的程序员和面试官,助你拿到名企高薪 Offer。






第二个是我的知识星球,特惠期间只需 169 元,需要的可以扫码加入。

关于星球介绍点击:

超 500 万字详解,从零到一带你彻底吃透 Kafka + RocketMQ

小红书实战





需要续费的扫这个,优惠15元


另外必须要注意的是上车的老铁一定要加我微信
好友,拉你们加入星球专属交流群。



华仔聊技术
聊聊后端技术架构以及中间件源码
 最新文章