分布式数据一致性问题

这是一只小小鸟 发布于 08/26 19:19
阅读 386
收藏 0

现有三个服务:A,B,C

A 服务中的一个 Service 需要同时更新 A, B,C 服务的数据(数据源位于不同的数据库)。

这种情况下,如果先更新B 再更新C 。

B成功了,C请求超时了(出现异常)咋整呀?B的数据怎么回退呢?

这不是分布式事物能解决的吧? 

加载中
0
逆风是自由
逆风是自由

这不就是分布式事务么?ABC相当于三个方法,共用一个事务

这是一只小小鸟
这是一只小小鸟
哪,咋整啊 ?
0
Gannalyo
Gannalyo

分布式事务就干这个的。

可以有多种手段来达到ABC的数据一致性,包括程序层面的自动处理、业务层面的手动实现补偿接口,当然TCC等也能达到相关效果,但是性能上恐怕不那么尽人意。

我们计划于10.24日开源我们的分布式(微服务)事务中间件 - txle

项目正在建设中,敬请期待!!!

0
Gannalyo
Gannalyo

有什么分布式事务相关问题  我们可以随时交流沟通

0
网瘾少年徐志摩
网瘾少年徐志摩

分布式没有强事务,都是通过业务代码提供回滚机制实现

分布式下就别想事务了,要数据保持一致就用redis或者mongodb之类的

这是一只小小鸟
这是一只小小鸟
大佬能指点一下?我现在的做法是,A调用完成B之后,记录B调用之前的状态。A调用C之后,C给A一个消息回调,确认C已经完工。半小时后未收到确认信息,B回滚。A再自身初始化。感觉操作有点多...
0
Coderztf
Coderztf
这就是分布式事务……
返回顶部
顶部