分布式事务总结

简介: 学习摘要
方案 简介 事务分类 一致性 总结 实现/产品/框架
两阶段提交(2PC) 二阶段分别指的是准备和提交两个阶段 数据库层面 强一致性 锁资源-阻塞-效率低 Seata
三阶段提交(3PC) 准备阶段、预提交阶段和提交阶段 数据库层面 强一致性 引入一个阶段也多一个交互,因此性能会差一些
TCC(补偿事务) TCC 指的是Try - Confirm - Cancel 业务层面 最终一致性 执行效率高,基于 TCC 实现分布式事务,会将原来只需要一个接口就可以实现的逻辑拆分为 Try、Confirm、Cancel 三个接口,所以代码实现复杂度相对较高。 Seata
Saga模式 Saga是一个长活事务可被分解成可以交错运行的子事务集合。其中每个子事务都是一个保持数据库一致性的真实事务 业务层面 最终一致性 业务流程长、业务流程多 无锁,高性能 Seata apache/servicecomb-pack
最大努力通知 柔性事务的思想:尽力最大的努力达成事务的最终一致;直接传递消息消费,要是成功则成功,要是失败则多重试几次,还是不成功就算了 业务层面 最终一致性 适用于对时间不敏感的业务;最大努力通知事务方案既没有使用本地表扫描,也未使用可靠消息机制
本地消息表 本地消息表其实就是利用了 各系统本地的事务来实现分布式事务 业务层面 最终一致性 此方案的核心是将需要分布式处理的任务通过消息日志表的方式来异步执行,执行成功后修改消息的状态;此外另起一个线程,不断轮询本地消息表中未处理成功的消息再次发起调用。与tcc相比,实现方式较为简单,开发成本低。缺点: 事务业务与消息发送业务耦合 、业务数据与消息表要在一起 RocketMQ
消息事务 RocketMQ 事务消息的功能 业务层面 最终一致性 该方案与本地消息最大的不同是去掉了本地消息表,由MQ来实现消息的可靠性传递,确认消息一定被消费。业务相对简单,不需要编写三个阶段业务 缺点:代码侵入, 依赖于MQ的可靠性. RocketMQ
相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
4天前
|
数据库
分布式事务(一)
分布式事务(一)
|
4天前
|
消息中间件 数据库
分布式事务(二)
分布式事务(二)
|
3天前
|
数据库 微服务
分布式事务系列(三)
分布式事务系列(三)
|
3天前
|
消息中间件 关系型数据库 调度
分布式事务系列(二)
分布式事务系列(二)
|
3天前
|
数据库 微服务
分布式事务系列(一)
分布式事务系列(一)
|
1月前
|
消息中间件 缓存 监控
避免分布式事务
避免分布式事务
|
1月前
|
消息中间件 数据库 RocketMQ
关于分布式事务的理解
关于分布式事务的理解
28 0
|
4月前
|
消息中间件 Oracle 关系型数据库
分布式事务
分布式事务
254 0
|
11月前
|
SQL 存储 监控
浅谈分布式事务
浅谈分布式事务
46 0
|
存储 算法 网络协议
一文了解分布式事务
一文了解分布式事务