分布式事物各方案常见使用场景

  • 2PC/3PC:依赖于数据库,能够很好的提供强一致性和强事务性,但延迟比较高,比较适合传统的单体应用,在同一个方法中存在跨库操作的情况,不适合高并发和高性能要求的场景。
  • TCC:适用于执行时间确定且较短,实时性要求高,对数据一致性要求高,比如互联网金融企业最核心的三个服务:交易、支付、账务。
  • 本地消息表/MQ 事务:适用于事务中参与方支持操作幂等,对一致性要求不高,业务上能容忍数据不一致到一个人工检查周期,事务涉及的参与方、参与环节较少,业务上有对账/校验系统兜底。
  • Saga 事务:由于 Saga 事务不能保证隔离性,需要在业务层控制并发,适合于业务场景事务并发操作同一资源较少的情况。Saga 由于缺少预提交动作,导致补偿动作的实现比较麻烦,例如业务是发送短信,补偿动作则得再发送一次短信说明撤销,用户体验比较差。所以,Saga 事务较适用于补偿动作容易处理的场景
相关推荐
重生之Java再爱我一次7 小时前
Redisson分布式限流的使用及原理
分布式·redisson·分布式限流
Cent'Anni17 小时前
【Nacos】负载均衡
java·分布式·spring cloud·负载均衡
_GR20 小时前
Redis存储③Redis基本命令+内部编号和架构
java·数据库·redis·分布式·缓存·架构
DEARM LINER20 小时前
rabbitmq 多种安装模式
分布式·rabbitmq·rabbit
红衣女妖仙1 天前
分布式微服务系统简述
分布式·spring cloud·微服务·架构
小金的学习笔记1 天前
Redisson 实现分布式锁
数据库·redis·分布式
掘金-我是哪吒1 天前
分布式微服务系统架构第87集:kafka
分布式·微服务·架构·kafka·系统架构
一只小松许️1 天前
RabbitMQ的死信队列
分布式·rabbitmq
Denodo1 天前
如何用数据编织、数据虚拟化与SQL-on-Hadoop打造实时、可扩展兼容的数据仓库?
大数据·数据仓库·hadoop·分布式·数据挖掘·数据分析·spark
黄名富1 天前
Kafka 深入服务端 — 时间轮
java·数据结构·分布式·zookeeper·kafka