news 2026/4/23 15:54:12

分布式事务: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/4/23 9:51:29

跨平台Elasticsearch下载和安装:支持多系统日志接入

从零搭建跨平台日志中枢&#xff1a;Elasticsearch安装实战与多系统接入指南 你有没有遇到过这样的场景&#xff1f;开发在 macOS 上跑服务&#xff0c;测试用 Windows 验证功能&#xff0c;生产环境却部署在 Linux 服务器集群。一旦出问题&#xff0c;三套日志分散各处&#…

作者头像 李华
网站建设 2026/4/23 12:58:26

人体骨骼检测性能评测:MediaPipe Pose极速版

人体骨骼检测性能评测&#xff1a;MediaPipe Pose极速版 1. 技术背景与评测目标 随着AI在智能健身、动作捕捉、虚拟现实等领域的广泛应用&#xff0c;人体骨骼关键点检测&#xff08;Human Pose Estimation&#xff09;已成为计算机视觉中的核心技术之一。其目标是从单张图像…

作者头像 李华
网站建设 2026/4/23 14:44:06

MediaPipe Hands优化技巧:让手部追踪速度提升50%

MediaPipe Hands优化技巧&#xff1a;让手部追踪速度提升50% 在智能交互日益普及的今天&#xff0c;手势识别正从实验室走向客厅、车载系统乃至工业控制场景。基于 MediaPipe Hands 的 AI 手势识别与追踪镜像&#xff0c;凭借其高精度 21 关键点检测和炫酷的“彩虹骨骼”可视化…

作者头像 李华
网站建设 2026/4/23 15:27:58

MediaPipe Pose代码实例:检测实现详解

MediaPipe Pose代码实例&#xff1a;检测实现详解 1. 引言&#xff1a;AI 人体骨骼关键点检测的工程价值 随着计算机视觉技术的发展&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;已成为智能健身、动作捕捉、虚拟试衣、人机交互等场景的核心支撑技术…

作者头像 李华
网站建设 2026/4/23 13:00:25

MediaPipe Pose实战:高精度人体骨骼关键点检测

MediaPipe Pose实战&#xff1a;高精度人体骨骼关键点检测 1. 引言&#xff1a;AI 人体骨骼关键点检测的现实价值 随着计算机视觉技术的飞速发展&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;已成为智能健身、动作捕捉、虚拟试衣、人机交互等领域的…

作者头像 李华
网站建设 2026/4/17 21:06:23

提示词工程实训营12:5.3 - 多语言翻译与处理

场景实战—信息处理 - 5.3 - 多语言翻译与处理 相关文章&#xff1a; 《提示词进阶技巧05 - 3.1 思维链提示》 《提示词设计基础04 - 2.2 清晰度与结构化原则》 《提示词设计基础03 - 2.1 提示词的基本结构》 《提示词工程实训营02-1.2 实训营学习目标与方法》 《提示词工…

作者头像 李华