V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Breadykid
V2EX  ›  程序员

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

  •  
  •   Breadykid ·
    breadkid · 2019 年 7 月 9 日 · 2970 次点击
    这是一个创建于 2392 天前的主题,其中的信息可能已经有所发展或是发生改变。

    场景: 同步 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 年 7 月 9 日
    txlcn
    pifuant
        2
    pifuant  
       2019 年 7 月 9 日
    分布式事务成熟方案, 基本没有, 各种轮子罢了
    hosaos
        3
    hosaos  
       2019 年 7 月 9 日
    你这数据同步,和事务也没啥关系吧,你报错了 直接删除 B 的所有相关数据,或者重新写入报错的数据到 B
    zhangtao
        4
    zhangtao  
       2019 年 7 月 9 日
    tcc
    love
        5
    love  
       2019 年 7 月 9 日
    为啥要回滚?不能接着上次断的位置插吗?
    night98
        6
    night98  
       2019 年 7 月 9 日
    阿里开源了一款,不过分布式事务本身就基本上不可能满足你的这几个需求
    Breadykid
        7
    Breadykid  
    OP
       2019 年 7 月 10 日
    @hosaos 就是不知道怎么删除 B 里的本次事务操作的所有数据,首先不能清表,有历史数据,其次,这个表里的字段是动态的,没有指定的主键或者唯一字段可以区分某一条数据
    LeeSeoung
        8
    LeeSeoung  
       2019 年 7 月 10 日
    seata
    Breadykid
        9
    Breadykid  
    OP
       2019 年 7 月 11 日
    Breadykid
        10
    Breadykid  
    OP
       2019 年 7 月 11 日
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1068 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:59 · PVG 01:59 · LAX 09:59 · JFK 12:59
    ♥ Do have faith in what you're doing.