解决分布式事务最简单的方案就是向前或向后,即补充或回滚。
业务逻辑有如下三步:
-
调用A服务冻结金额
-
调用B服务增加额度
-
记录数据库
进行到第2步失败 -> 写task,回滚第1步(通知A服务方去回滚)
进行到第3步失败 -> 写task,从A/B服务处同步数据至数据库
还有一种方案就是写task,转化为本地事务,由task去执行上述三步,失败则重试task,当然,A/B服务都有幂等性处理。这种方案的缺点之一,是假定了参数合理的情况下,服务最终一定会执行成功,缺点之二是看起来不自然。
复杂的方案就是TCC方案,参见蚂蚁金服的DTS
相关推荐
实现的一个简单2PC分布式事务框架,客户端与服务端通信使用Netty,市面上成熟的2PC分布式事务框架有:LCN,大致的处理流程都是按照这种方式来的,希望对于学习分布式事务的小伙伴有所帮助。
TJDTP是一个非常优秀的框架,优势在于提高了应用的成功率,自动进行分布式事务处理,事务处理速度快,提高了数据的一致性,把对事务的处理由不可控变为可控,需要人工处理的故障可一键完成,简单快捷,实现事务处理...
Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务 一个典型的分布式事务过程:分布式事务处理过程的-ID+三组件模型 Transaction ID XID :全局唯一的事务ID ...
linq-to-sql-分布式事务处理,简单明了的 事务入门,从简单事务到分布式事务,清晰易懂,很好的入门资料
Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务 一个典型的分布式事务过程:分布式事务处理过程的-ID+三组件模型 Transaction ID XID :全局唯一的事务ID ...
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案 TC (Transaction Coordinator) - ...
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。在 Seata 开源之前,Seata 对应的...
既然分库了 分布式事务怎么处理,说到分布式事务 常见的解决方案有TCC/SAGA/消息队列最终一致性,在.NET生态中有基于消息队列实现的分布式事务 [CAP](https://github.com/dotnetcore/CAP) ,TCC和SAGA调研了很久没有...
MOONWATER是一个非常优秀的框架,优势在于提高了应用的成功率,自动进行分布式事务处理,事务处理速度快,提高了数据的一致性,把对事务的处理由不可控变成可控,需要人工处理的故障可一键完成,简单快捷,实现事务...
a、每个消费端的事务处理都由本地事务负责 b、基于下单队列消费端临时表,查询红包、积分两个队列消费端的临时表中该订单的处理的状态,如果全部为消费成功,则更新业务订单表中的订单状态由 下单中 --》 待...
CAP CAP是基于.Net标准的库,该库是处理分布式事务的解决方案,具有EventBus功能,它轻巧,易于使用且高效。 在构建SOA或MicroService系统的过程中,我们通常需要使用事件来集成每个服务。 在此过程中,简单使用消息...
项目简介 提供基于spring-cloud系列整合的依赖jar包,比如分布式锁,接口文档,多数据源,单点登录,第三方集成等等可spring-boot配置的,简单化的使用工具。...提供mybatis与jpa多数据源配置,分布式事务。 daijie-
JOTM Spring分布式事务处理(多数据源) demo配置 JOTM Spring分布式事务处理(多数据源) demo配置
与其硬着头皮牺牲性能和可靠性,还不如改变业务,再结合技术对事务进行分割,将复杂的事务简单化,将简单的事务消化化。在分布式系统中,每个节点虽然可以知晓自己的操作是成功或者失败,却无法知道其他节点的操作的...
解决部分分布式事务一致性问题:默认事务发生后一定成功的条件下,保证事务一致性,无法支持分布式事务回滚 可靠、简单、统一、通用 适用于: 想通过消息队列作为各个系统的传输中间件,并达到分布式事务一致性 要求...
分布式事务的一般结构是什么 答:分布式事务的一般结构为: Begin Transaction原语:开始一个事务(2分) T1[] T2[] : 子事务或操作序列 : Tn[] Commit原语:事务成功完成的结束(2分) Rollback或Abort原语:事务...
Seata(Simple Extensible Autonomous Transaction Architecture)是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务,能处理一个典型的分布式事务过程
10. 2.2 多层体系结构下的事务 10.2.3 一个基本的midas例子 10.2.4 公文包模式介绍以及具体例子 10.2.5 datapooler技术的例子 10. 3 在 midas中使用 activex 10. 3.1 activex控件开发过程 10.3.2 ...