分布式事务解决方案-TCC|学习笔记

简介: 快速学习分布式事务解决方案-TCC

开发者学堂课程【全面讲解Spring Cloud Alibaba技术栈(知识精讲+项目实战)第五阶段分布式事务解决方案-TCC】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/687/detail/11926


分布式事务解决方案-TCC

内容介绍

一、基本介绍

二、实现分布式事务的三个步骤

三、TCC 两阶段与 XA 两阶段的区别

四、TCC 事务的优缺点


一、基本介绍

第四种分布式事务解决方案称为TCC事务。TCC是三个英文单词的

缩写,分别为 Try(尝试)、Confirm(提交)、Cancel(取消),它属

于补偿型的分布式事务解决方案。

TCC 实现分布式事务一共需要三个步骤,这三个步骤分别就是这三个

单词。


二、实现分布式事务的三个步骤

1、Try:尝试待执行的业务

这个过程并未真正地执行业务,只是完成所有业务的一致性检查,并

预留好执行所需的全部资源。

2、Confirm:确认执行业务

确认执行业务操作,不做任何业务检查,只使用Try阶段预留的业

务资源。通常情况下,采用TCC则认为 Confirm 阶段是不会出错的。

即:只要Try成功,Confirm 一定成功。若 Confirm 阶段真的出错

了,需引入重试机制或人工处理。

3、Cancel:取消待执行的业务

取消 Try 阶段预留的业务资源。通常情况下,采用TCC则认为只要

Try 成功了,Cancel 阶段也是一定成功的。若 Cancel 阶段真的出

现问题,需引入重试机制或人工处理。

图片1.png

第一个是 Try,Try 如果全部成功,就可以执行 Confirm 了。Try如

果有失败的,就执行 Cancel。这个图其实与最初的全局事务是很相

似的。TCC 两个阶段的提交和全局事务两个阶段的提交非常相似,但

是也有一定区别。


三、TCC两阶段与XA两阶段的区别

1、XA 是资源层面的分布式事务,所谓的资源可以认为是数据库层次

的分布式事务,保证的是强一致性,在两阶段提交的整个过程中,一

直会持有资源的锁。

2、TCC 是业务层面的分布式事务,最终保持一致性就可以,不会一

直持有资源的锁。


四、TCC事务的优缺点

1、优点

把数据库层的二阶段提交上揭到了应用层来实现,规避了数据库层进

行两阶段提交的性能低下问题。而性能低下的原因就是持有数据库资

源锁的时间过长。

2、缺点

TCC 的 Try、Confirm 和 Cancel 操作功能需业务提供,也就意味着

需要自主进行代码的开发,开发成本高。

这些方案只是指导思想,还是要运用实际的产品。业界的产品的数量

不在少数,但比较流行的却不是特别多。

相关文章
|
8月前
|
负载均衡 NoSQL 算法
Redisson分布式锁数据一致性解决方案
通过以上的设计和实现, Redisson能够有效地解决分布式环境下数据一致性问题。但是, 任何技术都不可能万无一失, 在使用过程中还需要根据实际业务需求进行逻辑屏障的设计和错误处理机制的建立。
401 48
|
存储 SQL 微服务
常用的分布式事务解决方案(三)
常用的分布式事务解决方案(三)
|
关系型数据库 MySQL
常见分布式事务的解决方案(一)
常见分布式事务的解决方案(一)
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
262 5
|
存储 NoSQL Java
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
这篇文章是关于Java面试中的分布式架构问题的笔记,包括分布式架构下的Session共享方案、RPC和RMI的理解、分布式ID生成方案、分布式锁解决方案以及分布式事务解决方案。
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
|
消息中间件 中间件 关系型数据库
常用的分布式事务解决方案(四)
常用的分布式事务解决方案(四)
常用的分布式事务解决方案(二)
常用的分布式事务解决方案(二)
|
机器学习/深度学习 分布式计算 Cloud Native
云原生架构下的高性能计算解决方案:利用分布式计算资源加速机器学习训练
【8月更文第19天】随着大数据和人工智能技术的发展,机器学习模型的训练数据量和复杂度都在迅速增长。传统的单机训练方式已经无法满足日益增长的计算需求。云原生架构为高性能计算提供了新的可能性,通过利用分布式计算资源,可以在短时间内完成大规模数据集的训练任务。本文将探讨如何在云原生环境下搭建高性能计算平台,并展示如何使用 PyTorch 和 TensorFlow 这样的流行框架进行分布式训练。
362 2
|
存储 监控 数据可视化
性能监控之JMeter分布式压测轻量日志解决方案
【8月更文挑战第11天】性能监控之JMeter分布式压测轻量日志解决方案
383 0
性能监控之JMeter分布式压测轻量日志解决方案
|
消息中间件 编译器 C++
分布式篇问题之TCC方案中的Try阶段主要问题如何解决
分布式篇问题之TCC方案中的Try阶段主要问题如何解决
147 0