【热门文章解析】Spring AOP + 自定义注解 + 动态数据源 实现主从库切换&读写分离

前言

今日解读文章来自:



原文链接🔗

原文解读

业务中单机数据库往往有可能成为瓶颈。

这篇文章也是强调了读写分离的目的。一起来看看是如何在Spring应用中配置读写分离的数据库。

首先是准备工作,可以看到作者使用了基本的web和mybatis。为啥我会分开框中这两部分呢?不知道大家有没有发现官方库的命名方式为spring-boot-starter-xxx,三方库的命名方式为xxx-spring-boot-starter




除了项目需要准备之外,数据库也需要准备。作者介绍的还是比较全的,大致过程是通过masterstate更新salve的信息,按照master-binlogsalve-binlog启动两个db。线上不停机创建的化其实要根据mysqldump的信息启动从数据库。


配置文件更新下之前配置的两个数据库,并注入到容器中。

之后实现一个线程级别的数据源切换,这里只切换使用哪个数据源的标识。


这部分会切换成写,其他会切换成读。


数据源路由时会根据之前线程内存储的数据进行选择,之后配置mybatis从刚刚配置的动态数据源中获取。



最终通过上面一系列的操作,终于实现了读从从库取,写从主库写。

后记

总结一哈,这里作者介绍了基于切面实现的动态切换数据源的方案,用到了线程独占哈希表来标识当前属于读操作还是写操作,还是值得大家学习的。

专栏所有文章均取材自博客排行榜,并附加个人的解读。


感兴趣的老爷们点个👍,想看其他文章的解读可以评论区留言。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值