多数据源+主从+分库方案探讨、实现

1. 多数据源(项目默认 方案1.4.3 )

1.1 处理方案:分包、注解 切换两种

1.2 使用场景:多数据源主从/多数据源多库/多数据源主从+多库

1.3 问题处理:多数据源就脱离不了事务处理,如何处理事务的统一

1.4 实现方案:

1.4.1 分包:创建多个sqlsession ,通过不同包名分配不同的 sqlsessiontemplate 进行数据操作(参考分支 v0.1 )

1.4.2 注解:注解指定数据源,通过AOP形式进行数据源切换

1.4.3 分包+注解:通过拦截spring的 Service注解,解析包目录进行切换,切换支持spel表达式解析,能执行库操作(参考分支 v0.2)

1.5 问题解决思路

1.5.1 主从场景,使用spring事务即可,建议直接使用 dynamic插件进行使用
1.5.2 分库场景

1.5.2.1 事务:简单处理考虑使用 atomickos 的xa实现方案,进行强事务整合 (v0.1)
1.5.2.2 事务:复杂处理,引入 seata 服务,可使用 AT/TCC/SAGA 方案都可以达到最终一致性,(缺点就是需要引入单独的seata组件)

项目地址:313757586/gen-start 参考对应分支版本,欢迎大家沟通交流,共同进步

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值