请问如何实现 1、要求简单,只有部分方法需要,非大规模 2、事务控制怎么处理,如果 1 插入了 2 插入不成功 1 要回滚 3、项目采用的是 spirngbooot+mybatis
1
elgae 2018-10-23 11:58:00 +08:00
针对两个数据库操作的代码,分别抽一个方法出来
|
3
p2pCoder 2018-10-23 12:24:06 +08:00
跨库事务,坑很大
尽量拆分成两个服务,rpc 调用 |
4
jswh 2018-10-23 12:25:27 +08:00
事务控制只能手动处理了吧。做到极限就做一个自己的 bin log,出错了根据 bin log 回滚。
|
5
xmh51 2018-10-23 12:26:33 +08:00
shardingsphere 应该能满足需求,支持简单的异常直接回滚。支持柔性事物
|
6
zhuangzhimin OP |
7
p2pCoder 2018-10-23 14:15:58 +08:00
@zhuangzhimin 你这只要 mybatis 配置多数据源就行
|
8
xiaoxinshiwo 2018-10-23 15:16:49 +08:00
我推荐你使用 sharding-jdbc
http://shardingsphere.io/document/current/cn/overview/ |
9
xiaoxinshiwo 2018-10-23 15:18:11 +08:00
@zhuangzhimin #6 楼主一定要去看 sharding-jdbc,几年前我也有这个需求,自己实现的,各种调用,代码逻辑十分混乱,现在试用 sharding-jdbc 发现你压根就可以不用感知分库分表的存在
|
10
Variazioni 2018-10-23 16:42:24 +08:00
在 mybatis 里配置多数据源。。
然后业务类里手动切换一下就行了。。 我之前也有过类似的需求。 但是对次要数据库操作要求很低。。 所以主数据库用了 mybatis,次要数据库用了自己写的基于 JDBC 的一个小 ORM 框架。。。 |
11
zhuangzhimin OP @Variazioni 手动切换数据源 怎么手动切换?
|
12
Variazioni 2018-10-23 17:20:15 +08:00
|