- 2PC/3PC:依赖于数据库,能够很好的提供强一致性和强事务性,但延迟比较高,比较适合传统的单体应用,在同一个方法中存在跨库操作的情况,不适合高并发和高性能要求的场景。
- TCC:适用于执行时间确定且较短,实时性要求高,对数据一致性要求高,比如互联网金融企业最核心的三个服务:交易、支付、账务。
- 本地消息表/MQ 事务:适用于事务中参与方支持操作幂等,对一致性要求不高,业务上能容忍数据不一致到一个人工检查周期,事务涉及的参与方、参与环节较少,业务上有对账/校验系统兜底。
- Saga 事务:由于 Saga 事务不能保证隔离性,需要在业务层控制并发,适合于业务场景事务并发操作同一资源较少的情况。Saga 由于缺少预提交动作,导致补偿动作的实现比较麻烦,例如业务是发送短信,补偿动作则得再发送一次短信说明撤销,用户体验比较差。所以,Saga 事务较适用于补偿动作容易处理的场景
分布式事物各方案常见使用场景
斑驳竹影2024-12-07 8:28
相关推荐
惊讶的猫27 分钟前
rabbitmq实践小案例禁默1 小时前
打破集群通信“内存墙”:手把手教你用 CANN SHMEM 重构 AIGC 分布式算子惊讶的猫3 小时前
rabbitmq初步介绍小镇敲码人3 小时前
华为CANN框架中HCCL仓库的全面解析:分布式通信的引擎User_芊芊君子4 小时前
【分布式训练】CANN SHMEM跨设备内存通信库:构建高效多机多卡训练的关键组件酷酷的崽7984 小时前
CANN 开源生态解析(四):`cann-dist-train` —— 构建高效可扩展的分布式训练引擎惊讶的猫5 小时前
AMQP 与 RabbitMQ 四大模型灰子学技术5 小时前
istio从0到1:如何解决分布式配置同步问题小马爱打代码6 小时前
ZooKeeper:入门实战永远都不秃头的程序员(互关)6 小时前
CANN赋能AIGC分布式训练:硬核通信,加速大模型智能生成新纪元