TCC事务 基本思路

简介: 【8月更文挑战第9天】

一句话总结,就是既想要ACID,又想要分布式事务,以目前的条件来说基本不可能。所以所有解决分布式事务的方案,立足点都是最终一致性。因此不管从哪里提到了分布式事务,如果面试官问起来,你都可以先从理论上强调这一点。

分布式事务或者说跨库事务基本上都只能依赖于最终一致性,ACID 是不太可能的。比如说常见的 TCC、AT、SAGA,又或者比较罕见的延迟事务,其实都是追求最终一致性。

这里提到了 TCC、AT 和 SAGA 这些比较具体的方案,你就可以根据后面的内容来进一步解释,或者等面试官询问。
注意,如果面试官认为 XA 是支持 ACID 的,那么他可能会问:“难道没有什么能够保证 ACID 吗?”通过这种问题你就可以知道面试官的倾向了,那么你就可以抛开个人立场,回答 XA 事务。

有,XA 事务可以看作支持 ACID。

如果面试官直接问 XA,那么你就可以按照自己的真实想法来回答。

TCC是一个追求最终一致性的,而不是严格一致性的事务解决方案,他不满足ACID要求
TCC是Try Confirm Cancel的缩写,他勉强也算是两阶段提交协议的一种实现。

  • Try:对应于两阶段提交协议的准备阶段,执行事务但是不提交
  • Confirm:对应两阶段提交协议第二阶段的提交步骤
  • Cancel:对于两阶段提交协议的回滚步骤

之所以给它一个新名字,完全是因为TCC强调的是业务自定义逻辑。也就是说Try是执行业务自定义逻辑,Confirm也是执行业务自定义逻辑,Cancel也是。

TCC在微服务架构里比较常用,这三个各自对应一个微服务调用。不过一些分库分表中间件也支持TCC模式,但是比较罕见。

目录
相关文章
|
7月前
|
存储
分布式事务处理的重要性与挑战
【2月更文挑战第28天】随着分布式系统的广泛应用,分布式事务处理成为保障数据一致性和业务完整性的关键环节。然而,分布式事务处理面临着诸多挑战,如网络延迟、节点故障、数据一致性等问题。本章节将深入探讨分布式事务处理的重要性,分析其所面临的挑战,并讨论相应的解决方案和技术。
|
4月前
|
微服务 运维 监控
TCC和本地事务 容错
【8月更文挑战第10天】
62 12
|
4月前
|
数据库
TCC+ SAGA事务
【8月更文挑战第12天】
49 0
|
3月前
|
缓存 JavaScript Java
常见java OOM异常分析排查思路分析
Java虚拟机(JVM)遇到内存不足时会抛出OutOfMemoryError(OOM)异常。常见OOM情况包括:1) **Java堆空间不足**:大量对象未被及时回收或内存泄漏;2) **线程栈空间不足**:递归过深或大量线程创建;3) **方法区溢出**:类信息过多,如CGLib代理类生成过多;4) **本机内存不足**:JNI调用消耗大量内存;5) **GC造成的内存不足**:频繁GC但效果不佳。解决方法包括调整JVM参数(如-Xmx、-Xss)、优化代码及使用高效垃圾回收器。
178 15
常见java OOM异常分析排查思路分析
|
机器学习/深度学习 缓存 Oracle
【数据库设计与实现】第7章:缓存与检查点
缓存与检查点设计原则数据缓冲区与检查点是相辅相成的,所以放在同一个章节介绍。由于CPU与持久化设备之间存在巨大的速度差距,所以在内存中引入缓冲区缩小这个差距。从读的角度来看,将热点数据或预判用户可能读取的数据提前加载到内存中,从而将持久化设备的读时延和带宽提升至内存的时延和带宽。从写的角度来看,直接修改缓冲区中的数据而不是磁盘中的数据,可以带来两方面的优势。其一,将持久化设备的写时延和带宽提升至内
【数据库设计与实现】第7章:缓存与检查点
|
3月前
|
Java 数据处理 调度
Java中的多线程编程:从基础到实践
本文深入探讨了Java中多线程编程的基本概念、实现方式及其在实际项目中的应用。首先,我们将了解什么是线程以及为何需要多线程编程。接着,文章将详细介绍如何在Java中创建和管理线程,包括继承Thread类、实现Runnable接口以及使用Executor框架等方法。此外,我们还将讨论线程同步和通信的问题,如互斥锁、信号量、条件变量等。最后,通过具体的示例展示了如何在实际项目中有效地利用多线程提高程序的性能和响应能力。
|
6月前
|
消息中间件 数据库
TCC(Try-Confirm-Cancel)
【6月更文挑战第5天】
261 3
|
2月前
|
消息中间件 关系型数据库 Java
‘分布式事务‘ 圣经:从入门到精通,架构师尼恩最新、最全详解 (50+图文4万字全面总结 )
本文 是 基于尼恩之前写的一篇 分布式事务的文章 升级而来 , 尼恩之前写的 分布式事务的文章, 在全网阅读量 100万次以上 , 被很多培训机构 作为 顶级教程。 此文修改了 老版本的 一个大bug , 大家不要再看老版本啦。
|
6月前
|
设计模式 安全 Oracle
Java学习笔记:从入门到精通
Java学习笔记:从入门到精通
|
5月前
|
消息中间件 负载均衡 Kafka
Kafka的ISR和OSR的作用分别是什么
Kafka的ISR和OSR的作用分别是什么
241 3

热门文章

最新文章