我打算创建一个专栏,主要用于结合八股文和各种场景题来进行代码实践,包括但不限制于集成各种中间件去实现对应的场景和工具封装,该文章为SpringBoot专栏的一个系列,希望大家观看以后帮我多多点赞评论。
大家的点赞和关注是我创作的动力,实属不易,谢谢大家~
📕 高可用集群的相关面试题
-
MySQL主从复制的好处
- 数据备份与故障转移:主从复制能够实现数据的异地备份,当数据库故障时,可以切换到从数据库,避免数据丢失。同时,从数据库可以作为主数据库的备份,实现故障转移。
- 架构拓展:当业务量越来越大,I/O访问频率越来越高的时候,采用多库的存储可以降低I/O访问的频率,提高单个机器的I/O性能。
- 读写分离:主从复制可以实现读写分离,使数据库能支持更大的并发。这有助于平衡负载,提高数据库的性能。
- 服务器负载均衡:通过在主服务器和从服务器之间切分处理客户查询的负荷,可以实现服务器的负载均衡,这有助于提高数据库的整体性能。
- 性能提升:一主多从的情况下,不同用户可以从不同的数据库读取数据,这有助于提高整体性能。
-
MySQL主从复制的缺点
- 数据一致性问题:MySQL主从复制是异步复制,从库的数据复制可能存在一定的延迟。这就导致了主从库之间的数据可能存在不一致的情况。例如:当主库更新了数据之后,从库还未复制完成,此时查询从库可能会得到旧数据,这就会影响到应用程序的准确性。
- 单点故障问题:MySQL主从复制的主库是单点,如果主库宕机,从库就无法进行数据同步,这就会导致真个系统的不可用。此外,如果主库在复制过程中发生了故障,也会影响从库的数据同步。
- 安全问题:MySQL主从复制中的数据传输是明文传输,如果数据被截获,就会导致数据泄露的风险。此外,在主从复制中,从库的权限较高,如果从库被攻击,就可能导致整个系统的安全问题。
- 实时性差:主从复制需要一定时间来完成数据同步,因此无法保证数据实时性。
- 复杂性高:主从复制需要配置和管理多个数据库服务器,增加了系统的复杂性。
- 性能瓶颈:在大量写入操作时,主库可能会成为性能瓶颈。
- 数据量大的话同步效率差:单表数据量过大时插入和更新因索引,磁盘IO等问题,性能会变的很差。
-
MySQL主从同步复制原理
- slave端的IO线程连接上master端,并请求从指定binlog日志文件的指定位置pos节点位置(或者从最开始的日志)开始复制之后的日志内容
- master端在接收到来自slave端的IO线程请求后,通知负责复制线程的IO线程,根据slave端IO线程的请求信息,读取指定的binlog日志指定pos节点位置之后的日志信息,然后返回给slave端的IO线程,该返回信息除了binlog日志所包含的信息之外,还包括本次返回的信息在master端的binlog日志文件名以及在该binlog日志中的pos节点位置。
- slave端的IO线程在接收到master端IO返回的信息,将接收到的binlog日志内容依次写入到slave端的rela
本文详细介绍了MySQL主从复制的优缺点,包括数据备份、架构拓展、读写分离等好处,以及数据不一致、单点故障等潜在问题。此外,解释了主从复制的原理和不同复制方式,如异步、全同步和半同步,并探讨了解决主从延迟的方法。最后,提到了分库分表、主从选举机制和应对主节点故障的策略。
最低0.47元/天 解锁文章
614

被折叠的 条评论
为什么被折叠?



