news 2026/7/22 2:32:52

分布式事务:2PC、TCC、SAGA 模式实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
分布式事务:2PC、TCC、SAGA 模式实现

2PC 模式实现代码

分布式事务的 2PC(两阶段提交)模式通过协调者(Coordinator)和参与者(Participant)实现。以下是一个简化的 Java 实现示例:

public interface Participant { boolean prepare(); boolean commit(); boolean rollback(); } public class Coordinator { private List<Participant> participants; public boolean executeTransaction() { // Phase 1: Prepare for (Participant participant : participants) { if (!participant.prepare()) { // Phase 2: Rollback participants.forEach(Participant::rollback); return false; } } // Phase 2: Commit for (Participant participant : participants) { if (!participant.commit()) { // Rollback if any commit fails participants.forEach(Participant::rollback); return false; } } return true; } }

https://www.zhihu.com/zvideo/1994255009265779578/
https://www.zhihu.com/zvideo/1994255009265779578
https://www.zhihu.com/zvideo/1994255004966598304/
https://www.zhihu.com/zvideo/1994255004966598304
https://www.zhihu.com/zvideo/1994254999589495973/
https://www.zhihu.com/zvideo/1994254999589495973
https://www.zhihu.com/zvideo/1994254998457046795/
https://www.zhihu.com/zvideo/1994254998457046795
https://www.zhihu.com/zvideo/1994254996347311189/
https://www.zhihu.com/zvideo/1994254996347311189
https://www.zhihu.com/zvideo/1994254989732889508/
https://www.zhihu.com/zvideo/1994254989732889508
https://www.zhihu.com/zvideo/1994254982837458175/
https://www.zhihu.com/zvideo/1994254982837458175
https://www.zhihu.com/zvideo/1994254979255513552/
https://www.zhihu.com/zvideo/1994254979255513552
https://www.zhihu.com/zvideo/1994254975883319037/
https://www.zhihu.com/zvideo/1994254975883319037
https://www.zhihu.com/zvideo/1994254975820379847/
https://www.zhihu.com/zvideo/1994254975820379847
https://www.zhihu.com/zvideo/1994254973169603529/
https://www.zhihu.com/zvideo/1994254973169603529
https://www.zhihu.com/zvideo/1994254972846638016/
https://www.zhihu.com/zvideo/1994254972846638016
https://www.zhihu.com/zvideo/1994254969709286509/
https://www.zhihu.com/zvideo/1994254969709286509
https://www.zhihu.com/zvideo/1994254968882996284/
https://www.zhihu.com/zvideo/1994254968882996284
https://www.zhihu.com/zvideo/1994254967280773003/
https://www.zhihu.com/zvideo/1994254967280773003
https://www.zhihu.com/zvideo/1994254960695739745/
https://www.zhihu.com/zvideo/1994254960695739745
https://www.zhihu.com/zvideo/1994254954123265697/
https://www.zhihu.com/zvideo/1994254954123265697
https://www.zhihu.com/zvideo/1994254952277770972/
https://www.zhihu.com/zvideo/1994254952277770972
https://www.zhihu.com/zvideo/1994254947596923547/
https://www.zhihu.com/zvideo/1994254947596923547

TCC 模式实现代码

TCC(Try-Confirm-Cancel)模式通过业务逻辑的拆分实现分布式事务。以下是 TCC 的 Java 实现示例:

public interface TccService { boolean tryAction(); boolean confirmAction(); boolean cancelAction(); } public class TccCoordinator { private List<TccService> services; public boolean execute() { // Try Phase for (TccService service : services) { if (!service.tryAction()) { // Cancel Phase services.forEach(TccService::cancelAction); return false; } } // Confirm Phase for (TccService service : services) { if (!service.confirmAction()) { // Cancel if any confirm fails services.forEach(TccService::cancelAction); return false; } } return true; } }

SAGA 模式实现代码

SAGA 模式通过正向操作和补偿操作实现最终一致性。以下是 SAGA 的 Java 实现示例:

public interface SagaAction { boolean execute(); boolean compensate(); } public class SagaCoordinator { private List<SagaAction> actions; public boolean execute() { List<SagaAction> executedActions = new ArrayList<>(); for (SagaAction action : actions) { if (!action.execute()) { // Compensate executed actions in reverse order for (int i = executedActions.size() - 1; i >= 0; i--) { executedActions.get(i).compensate(); } return false; } executedActions.add(action); } return true; } }

注意事项

  • 2PC 模式依赖于协调者的可靠性,适用于强一致性场景,但存在阻塞问题。
  • TCC 模式需要业务逻辑支持 Try-Confirm-Cancel 三阶段,适用于高一致性要求的业务。
  • SAGA 模式通过补偿机制实现最终一致性,适用于长事务和弱一致性场景。

以上代码为简化示例,实际应用中需结合具体框架(如 Seata、Spring Cloud)和业务需求调整。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 8:26:12

vivado注册 2035 小白指南:快速理解注册流程

Vivado注册全攻略&#xff1a;从零开始搞定许可证&#xff0c;告别“2035”误解 你是不是也曾在搜索引擎里输入过“vivado注册 2035”&#xff1f; 这个关键词在中文技术社区中频繁出现&#xff0c;甚至成了不少新手入门FPGA的第一道门槛。但真相是—— 它根本不是官方术语 …

作者头像 李华
网站建设 2026/7/15 16:00:01

人体骨骼检测实战:MediaPipe 33关键点定位精度提升

人体骨骼检测实战&#xff1a;MediaPipe 33关键点定位精度提升 1. 引言&#xff1a;AI 人体骨骼关键点检测的现实挑战 在计算机视觉领域&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;是理解人类行为的基础技术之一。它通过识别图像中人体的关键关节…

作者头像 李华
网站建设 2026/7/21 13:18:18

AD如何导出符合制板要求的Gerber文件?新手必读

如何用Altium Designer导出真正“能打板”的Gerber文件&#xff1f;新手避坑全指南你有没有遇到过这种情况&#xff1a;辛辛苦苦画完PCB&#xff0c;信心满满导出Gerber发给工厂&#xff0c;结果对方回复一句&#xff1a;“丝印反了”、“缺阻焊层”、“钻孔偏移”……瞬间心态…

作者头像 李华
网站建设 2026/7/15 9:10:14

AI骨骼关键点检测入门必看:MediaPipe Pose极速CPU版详解

AI骨骼关键点检测入门必看&#xff1a;MediaPipe Pose极速CPU版详解 1. 技术背景与应用价值 随着人工智能在计算机视觉领域的深入发展&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;已成为智能健身、动作捕捉、虚拟试衣、人机交互等场景的核心技术之…

作者头像 李华
网站建设 2026/7/19 9:11:10

深度剖析WinDbg下载附带的调试引擎架构原理

深度剖析 WinDbg 调试引擎的架构与实战原理 你有没有遇到过这样的场景&#xff1a;系统突然蓝屏&#xff0c;日志只留下一串神秘的 BugCheckCode 和几个毫无头绪的内存地址&#xff1f;或者某个驱动在特定条件下崩溃&#xff0c;但复现困难、堆栈模糊&#xff1f;这时候&…

作者头像 李华
网站建设 2026/7/17 16:14:03

MediaPipe Hands功能全测评:CPU版手部追踪真实表现

MediaPipe Hands功能全测评&#xff1a;CPU版手部追踪真实表现 你是否曾幻想过&#xff0c;仅凭一双手就能操控智能设备、实现空中绘画&#xff0c;甚至与虚拟世界无缝交互&#xff1f;如今&#xff0c;借助 MediaPipe Hands 这一轻量级、高精度的手部关键点检测模型&#xff…

作者头像 李华