首先需要选择某种 TCC 分布式事务框架,各个服务里就会有这个 TCC 分布式事务框架在运行。
然后你原本的一个接口,要改造为 3 个逻辑,Try-Confirm-Cancel:
- 先是服务调用链路依次执行 Try 逻辑。
- 如果都正常的话,TCC 分布式事务框架推进执行 Confirm 逻辑,完成整个事务。
- 如果某个服务的 Try 逻辑有问题,TCC 分布式事务框架感知到之后就会推进执行各个服务的 Cancel 逻辑,撤销之前执行的各种操作。
这就是所谓的 TCC 分布式事务。TCC 分布式事务的核心思想,说白了,就是当遇到下面这些情况时:
- 某个服务的数据库宕机了。
- 某个服务自己挂了。
- 那个服务的 Redis、Elasticsearch、MQ 等基础设施故障了。
- 某些资源不足了,比如说库存不够这些。
先来 Try 一下,不要把业务逻辑完成,先试试看,看各个服务能不能基本正常运转,能不能先冻结我需要的资源。
如果 Try 都 OK,也就是说,底层的数据库、Redis、Elasticsearch、MQ 都是可以写入数据的,并且你保留好了需要使用的一些资源(比如冻结了一部分库存)。
接着,再执行各个服务的 Confirm 逻辑,基本上 Confirm 就可以很大概率保证一个分布式事务的完成了。
那如果 Try 阶段某个服务就失败了,比如说底层的数据库挂了,或者 Redis 挂了,等等。
此时就自动执行各个服务的 Cancel 逻辑,把之前的 Try 逻辑都回滚,所有服务都不要执行任何设计的业务逻辑。保证大家要么一起成功,要么一起失败。
相关推荐
而TCC分布式事务组件则是Hyperf对分布式事务处理的一个重要补充,使得开发者能够在微服务环境中处理复杂的业务逻辑,保证数据的一致性。 TCC模式的核心思想是将一个全局事务拆分为多个本地事务,每个本地事务对应一...
在线教育平台中引入TCC分布式事务框架,可以实现服务间调用的事务性,确保在任何情况下数据的一致性,为学习者和教育者提供稳定可靠的学习管理服务。 基于微服务和TCC分布式事务设计的在线教育平台,已经在实际运营...
### REST-TCC分布式事务 #### 一、引言与背景 在RESTful Web服务领域,原子性事务的支持一直是讨论的热点。尽管HTTP协议定义的GET、PUT、DELETE等请求具有幂等性,使得单个服务的客户端交互具备了一定程度的可靠性...
在Java中实现TCC分布式事务,首先需要理解以下关键组件: 1. **业务服务(Business Service)**:提供实际的业务操作,如扣减库存、增加订单等。业务服务需要实现Try、Confirm和Cancel接口,分别对应初步操作、确认...
本项目"基于Hyperf的TCC分布式事务-tcc-transaction.zip"提供了在Hyperf框架下实现TCC事务的示例,帮助开发者理解和应用TCC模式。 首先,我们需要了解Hyperf。Hyperf是一款基于Swoole 4.4+开发的高性能、全异步的...
首先,我们来深入理解TCC分布式事务模型。TCC由三个阶段组成:尝试(Try)、确认(Confirm)和取消(Cancel)。在尝试阶段,系统会检查业务操作是否可以执行,如果可以则预留资源;确认阶段,当所有参与者都成功完成...
基于Java的TCC分布式事务框架 项目概述 TCC(TryConfirmCancel)是一种分布式事务处理模式,广泛应用于需要保证数据一致性的分布式系统中。本项目提供了一个基于TCC模式的分布式事务框架,支持多种存储方式(如...
本文将深入探讨TCC分布式事务解决方案以及如何在Java环境中使用tcctransaction库。 TCC(Try-Confirm-Cancel)模式由三个阶段组成: 1. Try(尝试):在这一阶段,各个服务执行本地事务的尝试操作,检查业务资源...
### TCC 分布式事务解决方案详解 #### 一、什么是TCC事务? TCC事务是一种分布式事务处理模型,尤其适用于微服务架构中的场景。TCC是Try、Confirm、Cancel三个单词首字母的缩写,代表着分布式事务处理过程中的三个...
来自51CTO技术栈!!! 之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下。很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用。
总的来说,这个压缩包提供了一个实际的TCC分布式事务代码示例,有助于我们理解TCC的工作原理和如何在项目中运用。通过深入研究这些源码,我们可以更好地掌握分布式事务的处理方式,提升在大型分布式系统中的开发能力...
tcc-transaction有兴趣优化和完善的小伙伴欢迎联系我 vx:ai979126035基于Hyperf的TCC分布式事务Tcc注意事项:并发控制允许空回滚防悬挂控制幂等控制目前支持钉钉以及邮件推送事务失败通知,感谢使用方法:composer ...
通过分析和学习Hmily框架的源码,开发者可以更好地理解和实践TCC分布式事务模式,提升系统在分布式环境下的稳定性与可靠性。同时,也能为自己的项目选择或设计合适的分布式事务解决方案提供参考。
TCC分布式事务框架 基于服务层补偿的Tcc分布式事务解决方案,基于java 1.8编写,目前支持springcloud应用框架。 业务层只需把关注点放到资源预留的try方法,业务补偿的confirm/cancel方法的实现上。try成功或者失败...
在这个名为"TCC-Transaction分布式事务DEMO"的项目中,我们将深入探讨TCC模式以及如何在基于Mysql数据库的环境中实现它。 **TCC模式详解** TCC(Try-Confirm-Cancel)是一种补偿型的分布式事务处理模式,主要由三...
Java分布式事务框架是现代大型分布式系统中不可或缺的一部分,它确保在多节点、多服务之间的一致性和...开发者可以通过研究这些内容,了解如何在实际项目中运用TCC分布式事务框架,以提升系统的事务处理能力和稳定性。
5. **分布式事务协调者(如TCC,Try-Confirm-Cancel)**:TCC模式下,每个服务都提供Try、Confirm和Cancel三个操作。Try是尝试执行业务操作,Confirm是确认执行,Cancel是取消操作。在所有服务的Try操作成功后,再...
在分布式事务中,XA、Saga、TCC和MQ补偿等解决方案都可以用于实现分布式事务的一致性和可靠性。每种解决方案都有其特点和优势,选择哪种解决方案取决于具体的业务需求和系统架构。 在 MySQL 中,XA 事务可以通过...
### 分布式事务基础知识 #### 一、ACID特性与CAP理论 在深入探讨不同分布式事务解决方案之前,我们首先需要理解分布式系统中的两个核心概念——ACID特性和CAP理论。 **ACID特性**: 1. **原子性(Atomicity)**...