V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Breadykid
V2EX  ›  程序员

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

  •  
  •   Breadykid ·
    breadkid · 2019-07-09 17:59:18 +08:00 · 2515 次点击
    这是一个创建于 1960 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    框架: Spring Cloud

    我的实现:

    serviceA 的一个事务内,

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

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

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

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

    10 条回复    2019-07-11 23:07:04 +08:00
    fanfou
        1
    fanfou  
       2019-07-09 18:21:26 +08:00
    txlcn
    pifuant
        2
    pifuant  
       2019-07-09 18:28:57 +08:00
    分布式事务成熟方案, 基本没有, 各种轮子罢了
    hosaos
        3
    hosaos  
       2019-07-09 18:53:02 +08:00
    你这数据同步,和事务也没啥关系吧,你报错了 直接删除 B 的所有相关数据,或者重新写入报错的数据到 B
    zhangtao
        4
    zhangtao  
       2019-07-09 18:55:13 +08:00
    tcc
    love
        5
    love  
       2019-07-09 19:43:52 +08:00
    为啥要回滚?不能接着上次断的位置插吗?
    night98
        6
    night98  
       2019-07-09 20:31:46 +08:00
    阿里开源了一款,不过分布式事务本身就基本上不可能满足你的这几个需求
    Breadykid
        7
    Breadykid  
    OP
       2019-07-10 09:20:26 +08:00
    @hosaos 就是不知道怎么删除 B 里的本次事务操作的所有数据,首先不能清表,有历史数据,其次,这个表里的字段是动态的,没有指定的主键或者唯一字段可以区分某一条数据
    LeeSeoung
        8
    LeeSeoung  
       2019-07-10 10:05:28 +08:00
    seata
    Breadykid
        9
    Breadykid  
    OP
       2019-07-11 23:06:16 +08:00
    Breadykid
        10
    Breadykid  
    OP
       2019-07-11 23:07:04 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5860 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 06:17 · PVG 14:17 · LAX 22:17 · JFK 01:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.