`

TCC 分布式事务

 
阅读更多

      首先需要选择某种 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 逻辑都回滚,所有服务都不要执行任何设计的业务逻辑。保证大家要么一起成功,要么一起失败。

分享到:
评论

相关推荐

    基于Hyperf框架的TCC分布式事务组件.zip

    而TCC分布式事务组件则是Hyperf对分布式事务处理的一个重要补充,使得开发者能够在微服务环境中处理复杂的业务逻辑,保证数据的一致性。 TCC模式的核心思想是将一个全局事务拆分为多个本地事务,每个本地事务对应一...

    基于微服务和TCC分布式事务的在线教育平台设计方法研究.pdf

    在线教育平台中引入TCC分布式事务框架,可以实现服务间调用的事务性,确保在任何情况下数据的一致性,为学习者和教育者提供稳定可靠的学习管理服务。 基于微服务和TCC分布式事务设计的在线教育平台,已经在实际运营...

    rest-tcc分布式事务

    ### REST-TCC分布式事务 #### 一、引言与背景 在RESTful Web服务领域,原子性事务的支持一直是讨论的热点。尽管HTTP协议定义的GET、PUT、DELETE等请求具有幂等性,使得单个服务的客户端交互具备了一定程度的可靠性...

    TCC实现分布式事物,java 源码

    在Java中实现TCC分布式事务,首先需要理解以下关键组件: 1. **业务服务(Business Service)**:提供实际的业务操作,如扣减库存、增加订单等。业务服务需要实现Try、Confirm和Cancel接口,分别对应初步操作、确认...

    基于Hyperf的TCC分布式事务-tcc-transaction.zip

    本项目"基于Hyperf的TCC分布式事务-tcc-transaction.zip"提供了在Hyperf框架下实现TCC事务的示例,帮助开发者理解和应用TCC模式。 首先,我们需要了解Hyperf。Hyperf是一款基于Swoole 4.4+开发的高性能、全异步的...

    (源码)基于TCC分布式事务框架的分布式事务管理系统.zip

    # 基于TCC分布式事务框架的分布式事务管理系统 ## 项目简介 本项目是一个基于TCC(TryConfirmCancel)分布式事务框架的分布式事务管理系统。TCC是一种分布式事务处理模式,通过将事务分为Try、Confirm和Cancel三个...

    tcc分布式事务框架-hmily #资源达人分享计划#

    首先,我们来深入理解TCC分布式事务模型。TCC由三个阶段组成:尝试(Try)、确认(Confirm)和取消(Cancel)。在尝试阶段,系统会检查业务操作是否可以执行,如果可以则预留资源;确认阶段,当所有参与者都成功完成...

    TCC分布式事务.zip

    TCC分布式事务

    tcc分布式事务.zip

    tcc分布式事务

    基于Java的TCC分布式事务框架.zip

    基于Java的TCC分布式事务框架 项目概述 TCC(TryConfirmCancel)是一种分布式事务处理模式,广泛应用于需要保证数据一致性的分布式系统中。本项目提供了一个基于TCC模式的分布式事务框架,支持多种存储方式(如...

    (源码)基于TCC分布式事务的支付系统.zip

    # 基于TCC分布式事务的支付系统 ## 项目简介 本项目是一个基于TCC(TryConfirmCancel)分布式事务模型的支付系统。TCC是一种用于确保分布式系统中事务一致性的机制,通过将事务分为尝试(Try)、确认(Confirm)和...

    (源码)基于TCC分布式事务框架的订单支付系统.zip

    # 基于TCC分布式事务框架的订单支付系统 ## 项目简介 本项目是一个基于TCC(TryConfirmCancel)分布式事务框架的订单支付系统。TCC是一种用于处理分布式事务的补偿性事务模型,确保在分布式系统中多个服务之间的...

    基于TCC分布式事务解决方案,tcctransaction for java 简单易用,欢迎-micro-tcc.zip

    本文将深入探讨TCC分布式事务解决方案以及如何在Java环境中使用tcctransaction库。 TCC(Try-Confirm-Cancel)模式由三个阶段组成: 1. Try(尝试):在这一阶段,各个服务执行本地事务的尝试操作,检查业务资源...

    TCC分布式事务解决方案.docx

    ### TCC 分布式事务解决方案详解 #### 一、什么是TCC事务? TCC事务是一种分布式事务处理模型,尤其适用于微服务架构中的场景。TCC是Try、Confirm、Cancel三个单词首字母的缩写,代表着分布式事务处理过程中的三个...

    终于有人把 “TCC 分布式事务” 实现原理讲明白了!

    来自51CTO技术栈!!! 之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下。很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用。

    基于TCC的分布式事务代码示例:使用tcc-transaction框架.zip

    总的来说,这个压缩包提供了一个实际的TCC分布式事务代码示例,有助于我们理解TCC的工作原理和如何在项目中运用。通过深入研究这些源码,我们可以更好地掌握分布式事务的处理方式,提升在大型分布式系统中的开发能力...

    tcc-transaction:基于Hyperf的TCC分布式事务

    tcc-transaction有兴趣优化和完善的小伙伴欢迎联系我 vx:ai979126035基于Hyperf的TCC分布式事务Tcc注意事项:并发控制允许空回滚防悬挂控制幂等控制目前支持钉钉以及邮件推送事务失败通知,感谢使用方法:composer ...

    基于tcc的分布式事务框架源码.zip

    通过分析和学习Hmily框架的源码,开发者可以更好地理解和实践TCC分布式事务模式,提升系统在分布式环境下的稳定性与可靠性。同时,也能为自己的项目选择或设计合适的分布式事务解决方案提供参考。

    java8源码-tcc:TCC分布式事务框架

    TCC分布式事务框架 基于服务层补偿的Tcc分布式事务解决方案,基于java 1.8编写,目前支持springcloud应用框架。 业务层只需把关注点放到资源预留的try方法,业务补偿的confirm/cancel方法的实现上。try成功或者失败...

    Spring Cloud Netflix 的 TCC 分布式事务解决方案项目:含示例场景.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,...

Global site tag (gtag.js) - Google Analytics