高并发架构实战 Day41

实现分布式事务要耗费我们大量的精力和时间,硬件上的投入也不少,但当业务真的需要分布式事务时,XA 协议可以给我们提供强大的数据层支撑。 分布式事务的实现方式有多种,常见的有 2PC、3PC、TCC 等。其中,2PC 可以实现多个子事务统一提交回滚,但因为要保证数据的一致性,所以它的并发性能不好。而且 2PC 没有超时的机制,经常会将很多 XA 子事务遗漏在数据库中。 3PC 虽然有超时的机制,但是因为交互过多,事务经常会出现超时的情况,导致事务的性能很差。如果 3PC 多次尝试失败超时后,它会尝试回滚,这时如果回滚也超时,就会出现丢数据的情况。 TCC 则可以提前预定事务中需要锁定的资源,来减少业务粒度。它使用普通事务即可完成分布式事务协调,因此相对地 TCC 的性能很好。但是,提交最终事务和回滚逻辑都需要支持幂等,为此需要人工要投入的精力也更多。 目前,市面上有很多优秀的中间件,比如 DTM、Seata,它们对分布式事务协调做了很多的优化,比如过程中如果出现打断情况,它们能够自动重试、AT 模式根据业务修改的 SQL 自动生成回滚操作的 SQL,这个相对来说会智能一些。 此外,这些中间件还能支持更复杂的多层级、多步骤的事务协调,提供的流程机制也更加完善。所以在实现分布式事务时,建议使用成熟的开源加以辅助,能够让我们少走弯路。

相关推荐
Mandy的名字被占用了5 小时前
晨风AI+知识付费系统|学练考全闭环,重构教育变现新模式
人工智能·后端
why技术6 小时前
分享一套我一直在使用的 AICoding 组合拳,小而美的典范。
前端·后端·ai编程
GetcharZp7 小时前
SRS实战:一个开源流媒体服务,支持6大协议,80ms低延迟,轻松搭建自己的直播平台
后端
Csvn7 小时前
📊 SQL 入门 Day 7:子查询 — 查询中的查询
后端·sql
IT_陈寒10 小时前
为什么我的JavaScript异步代码总是不按顺序执行?
前端·人工智能·后端
星栈10 小时前
Node 框架怎么选?Express、Koa、Egg、NestJS 场景化选型指南
后端·node.js
锋行天下10 小时前
打造企业内部知识库系统RAG全栈项目
前端·后端·架构
码事漫谈11 小时前
Kimi K3 真实体验:全网评价整理,优缺点一次性说清楚
后端
Fanta丶11 小时前
16.Activiti8 SpringBoot3.X 部署与测试
后端
用户2080468045611 小时前
Python3 数据类型转换新手实战指南
后端