场景: 同步 2 个数据库表,tableA<->tableB
框架: Spring Cloud
我的实现:
serviceA 的一个事务内,
需要调用 serviceB 的服务插入批量插入数据,
由于 serviceA 内是走循环分批读完百万数据,
每读取 1000 条就调用 serviceB 进行数据的插入操作,
目前不知道插到某一条( 10000 )失败的话,之前的 9999 条如何回滚?
1
fanfou 2019-07-09 18:21:26 +08:00
txlcn
|
2
pifuant 2019-07-09 18:28:57 +08:00
分布式事务成熟方案, 基本没有, 各种轮子罢了
|
3
hosaos 2019-07-09 18:53:02 +08:00
你这数据同步,和事务也没啥关系吧,你报错了 直接删除 B 的所有相关数据,或者重新写入报错的数据到 B
|
4
zhangtao 2019-07-09 18:55:13 +08:00
tcc
|
5
love 2019-07-09 19:43:52 +08:00
为啥要回滚?不能接着上次断的位置插吗?
|
6
night98 2019-07-09 20:31:46 +08:00
阿里开源了一款,不过分布式事务本身就基本上不可能满足你的这几个需求
|
7
Breadykid OP @hosaos 就是不知道怎么删除 B 里的本次事务操作的所有数据,首先不能清表,有历史数据,其次,这个表里的字段是动态的,没有指定的主键或者唯一字段可以区分某一条数据
|
8
LeeSeoung 2019-07-10 10:05:28 +08:00
seata
|
9
Breadykid OP |
10
Breadykid OP |