分布式事务有什么轻量的解决方案?少配置,简依赖,开箱即用(我是不是太贪婪了- -)

2019-07-09 17:59:18 +08:00
 Breadykid

场景: 同步 2 个数据库表,tableA<->tableB

框架: Spring Cloud

我的实现:

serviceA 的一个事务内,

需要调用 serviceB 的服务插入批量插入数据,

由于 serviceA 内是走循环分批读完百万数据,

每读取 1000 条就调用 serviceB 进行数据的插入操作,

目前不知道插到某一条( 10000 )失败的话,之前的 9999 条如何回滚?

2369 次点击
所在节点    程序员
10 条回复
fanfou
2019-07-09 18:21:26 +08:00
txlcn
pifuant
2019-07-09 18:28:57 +08:00
分布式事务成熟方案, 基本没有, 各种轮子罢了
hosaos
2019-07-09 18:53:02 +08:00
你这数据同步,和事务也没啥关系吧,你报错了 直接删除 B 的所有相关数据,或者重新写入报错的数据到 B
zhangtao
2019-07-09 18:55:13 +08:00
tcc
love
2019-07-09 19:43:52 +08:00
为啥要回滚?不能接着上次断的位置插吗?
night98
2019-07-09 20:31:46 +08:00
阿里开源了一款,不过分布式事务本身就基本上不可能满足你的这几个需求
Breadykid
2019-07-10 09:20:26 +08:00
@hosaos 就是不知道怎么删除 B 里的本次事务操作的所有数据,首先不能清表,有历史数据,其次,这个表里的字段是动态的,没有指定的主键或者唯一字段可以区分某一条数据
LeeSeoung
2019-07-10 10:05:28 +08:00
seata
Breadykid
2019-07-11 23:06:16 +08:00
Breadykid
2019-07-11 23:07:04 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/581418

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX