news 2026/5/8 14:19:23

分布式事务: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/5/2 22:31:10

WebSailor-3B:如何让AI精准探索复杂网页?

WebSailor-3B&#xff1a;如何让AI精准探索复杂网页&#xff1f; 【免费下载链接】WebSailor-3B 项目地址: https://ai.gitcode.com/hf_mirrors/Alibaba-NLP/WebSailor-3B 导语&#xff1a;阿里巴巴推出WebSailor-3B轻量级模型&#xff0c;通过创新训练方法大幅提升AI在…

作者头像 李华
网站建设 2026/5/2 5:10:04

AI关键点检测性能测试:MediaPipe Pose

AI关键点检测性能测试&#xff1a;MediaPipe Pose 1. 引言&#xff1a;人体骨骼关键点检测的技术价值 随着人工智能在视觉领域的深入发展&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;已成为智能交互、运动分析、虚拟现实和安防监控等场景中的核心…

作者头像 李华
网站建设 2026/4/22 1:52:45

手势识别从入门到精通:彩虹骨骼镜像保姆级教程

手势识别从入门到精通&#xff1a;彩虹骨骼镜像保姆级教程 1. 技术概述 精准感知手部形状与运动的能力&#xff0c;是构建下一代人机交互系统的核心基础。无论是增强现实&#xff08;AR&#xff09;中的虚拟操控、智能硬件的手势控制&#xff0c;还是手语翻译系统的底层支撑&…

作者头像 李华
网站建设 2026/5/8 5:34:25

Lucy-Edit-Dev:文本指令一键搞定视频精准编辑

Lucy-Edit-Dev&#xff1a;文本指令一键搞定视频精准编辑 【免费下载链接】Lucy-Edit-Dev 项目地址: https://ai.gitcode.com/hf_mirrors/decart-ai/Lucy-Edit-Dev 导语&#xff1a;DecartAI团队近日发布开源视频编辑模型Lucy-Edit-Dev&#xff0c;首次实现纯文本指令驱…

作者头像 李华
网站建设 2026/5/8 5:34:23

MediaPipe Hands镜像实测:21个关键点定位精准度超预期

MediaPipe Hands镜像实测&#xff1a;21个关键点定位精准度超预期 1. 引言&#xff1a;从OpenCV到MediaPipe——手势识别的技术跃迁 在计算机视觉领域&#xff0c;手势识别一直是人机交互的重要研究方向。早期基于传统图像处理的方法&#xff08;如OpenCV 肤色分割 轮廓分析…

作者头像 李华
网站建设 2026/5/8 5:34:21

OpenMV人脸追踪算法工作原理揭秘

OpenMV如何用“小钢炮”算力实现人脸追踪&#xff1f;拆解它的底层逻辑你有没有想过&#xff0c;一块指甲盖大小的开发板&#xff0c;不连电脑、不接GPU&#xff0c;居然能实时识别人脸并驱动舵机追着人转&#xff1f;这不是科幻电影&#xff0c;而是OpenMV每天都在做的事。在树…

作者头像 李华