SpringBoot实现读写分离续集(原理和问题的处理篇)

本文介绍了SpringBoot如何实现数据库的读写分离和事务处理,详细阐述了MySQL主从复制的工作原理,包括binlog和relaylog的作用。同时,讨论了主从同步中可能遇到的数据延迟和主库故障问题,提出了相应的解决方案。文章总结了主从数据库架构的优势,如降低主服务器压力、方便备份和故障切换。

上周本打工人写了一篇SpringBoot实现读写分离和事务处理的文字,为了赶项目的功能和进度,颇有点囫囵吞枣的意思,只是实现了,但是没有机会和时间坐下来喝杯咖啡好好的研究一下其中的问题,所以才有了这篇续集。
什么是读写分离?
读写分离为了产品的高扩展、高稳定性,而实现的一种的一种数据库架构,一般我们在主库master写数据,在从库slave读数据。常用的是一主多从。
读写分离的原理及主从复制
Mysql 中主从复制时有两个很重要的日志文件:

binlog(二进制日志文件)
relay log(中继日志文件)
上图
在这里插入图片描述
在主从同步的过程中,会进行这样的步骤
(1)主库会将所有的操作事件记录在 binlog 中,从库通过开启一个 I/O 线程保持与主库的通信,并在一定时间间隔内探测 binlog 日志文件是否发生改变。
(2)binlog 日志发生了变化,主库生成一个 binlog dump 线程向从库 I/O 线程传送 binlog。
(3)从库上的 I/O 线程将 binlog 复制到自己的 relay log 中。
(4)最终由从库中的 SQL 线程读取 relay log 中的事件重放到从库上。
主从数据库会遇到哪些问题呢?
看到这里,我不禁会想,这样的架构有什么问题,怎么解决?
1.主从库的数据同步会不会有延迟?
2.如果主库挂了咋办?
(1)主从数据延迟产生的原因
1.数据重放过程是随机的,如果relay log来不及重放,就会产生延迟
2.主库高并发。当大量的写数据请求打到主库上,从

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值