美团Java研发二面:简历上写熟悉分布式事务?拿讲讲TCC的原理吧

本文介绍了TCC(Try-Confirm-Cancel)分布式事务的原理,包括其概念、操作流程、举例说明以及与2PC的区别。TCC在业务层面实现最终一致性,避免长时间持有资源锁,提高性能,但开发成本较高,要求Confirm和Cancel接口幂等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概念
1、概念

TCC又称补偿事务。其核心思想是:“针对每个操作都要注册一个与其对应的确认和补偿(撤销操作)”。它分为三个操作:

Try阶段:主要是对业务系统做检测及资源预留。
Confirm阶段:确认执行业务操作。
Cancel阶段:取消执行业务操作。
TCC对应 Try、Confirm、Cancel 三种操作可以理解成关系型数据库事务的三种操作:DML、Commit、Rollback。

在一个跨应用的业务操作中

Try:Try操作是先把多个应用中的业务资源预留和锁定住,为后续的确认打下基础,类似的,DML操作要锁定数据库记录行,持有数据库资源。

Confirm:Confirm操作是在Try操作中涉及的所有应用均成功之后进行确认,使用预留的业务资源,和Commit类似;

Cancel:Cancel则是当Try操作中涉及的所有应用没有全部成功,需要将已成功的应用进行取消(即Rollback回滚)。其中Confirm和Cancel操作是一对反向业务操作。

TCC的具体原理图如:
在这里插入图片描述
美团Java研发二面:简历上写熟悉分布式事务?拿讲讲TCC的原理吧
从图中我们可以明显看到Confirm和Cancel操作是一对反向业务操作 即要try返回成功执行Confirm,要么try返回失败执行Cancel操作。

分布式事务协调者:分布式事务协调者管理控制整个业务活动,包括记录维护TCC全局事务的事务状态和每个从业务服务的子事务状态࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值