V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Breadykid
V2EX  ›  程序员

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

  •  
  •   Breadykid ·
    breadkid · Jul 9, 2019 · 3080 views
    This topic created in 2484 days ago, the information mentioned may be changed or developed.

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

    框架: Spring Cloud

    我的实现:

    serviceA 的一个事务内,

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

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

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

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

    10 replies    2019-07-11 23:07:04 +08:00
    fanfou
        1
    fanfou  
       Jul 9, 2019
    txlcn
    pifuant
        2
    pifuant  
       Jul 9, 2019
    分布式事务成熟方案, 基本没有, 各种轮子罢了
    hosaos
        3
    hosaos  
       Jul 9, 2019
    你这数据同步,和事务也没啥关系吧,你报错了 直接删除 B 的所有相关数据,或者重新写入报错的数据到 B
    zhangtao
        4
    zhangtao  
       Jul 9, 2019
    tcc
    love
        5
    love  
       Jul 9, 2019
    为啥要回滚?不能接着上次断的位置插吗?
    night98
        6
    night98  
       Jul 9, 2019
    阿里开源了一款,不过分布式事务本身就基本上不可能满足你的这几个需求
    Breadykid
        7
    Breadykid  
    OP
       Jul 10, 2019
    @hosaos 就是不知道怎么删除 B 里的本次事务操作的所有数据,首先不能清表,有历史数据,其次,这个表里的字段是动态的,没有指定的主键或者唯一字段可以区分某一条数据
    LeeSeoung
        8
    LeeSeoung  
       Jul 10, 2019
    seata
    Breadykid
        10
    Breadykid  
    OP
       Jul 11, 2019
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4866 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 09:57 · PVG 17:57 · LAX 02:57 · JFK 05:57
    ♥ Do have faith in what you're doing.