博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式事务解决方案
阅读量:6906 次
发布时间:2019-06-27

本文共 632 字,大约阅读时间需要 2 分钟。

目前使用较多的三种分布式事务解决方案:

一、TCC事务补偿型解决方案

TCC分为三个阶段TRYING-CONFIRMING-CANCELING。每个阶段做不同的处理。 

TRYING 阶段主要是对业务系统做检测及资源预留 
CONFIRMING 阶段主要是对业务系统做确认提交,TRYING阶段执行成功并开始执行CONFIRMING阶段时,默认 CONFIRMING阶段是不会出错的。即:只要TRYING成功,CONFIRMING一定成功。 
CANCELING 阶段主要是在业务执行错误,需要回滚的状态下执行的业务取消,预留资源释放。 
以上所有的操作需要满足幂等性,幂等性的实现方式可以是: 
1、通过唯一键值做处理,即每次调用的时候传入唯一键值,通过唯一键值判断业务是否被操作,如果已被操作,则不再重复操作 
2、通过状态机处理,给业务数据设置状态,通过业务状态判断是否需要重复执行

TCC事务补偿型

二、结合MQ消息中间件实现的可靠消息最终一致性解决方案

可靠消息最终一致性,需要业务系统结合MQ消息中间件实现,在实现过程中需要保证消息的成功发送及成功消费。即需要通过业务系统控制MQ的消息状态。

可靠消息最终一致性

三、最大努力通知型解决方案

按规律进行通知,不保证数据一定能通知成功,但会提供可查询操作接口进行核对。这种方案主要用在与第三方系统通讯时,比如:调用微信或支付宝支付后的支付结果通知。这种方案也是结合MQ进行实现,例如:通过MQ发送http请求,设置最大通知次数。达到通知次数后即不再通知。

最大努力通知型

你可能感兴趣的文章
《Adobe Premiere Pro视频编辑指南(第2版)》——水银回放引擎
查看>>
从零开始打造个人专属命令行工具集——yargs 完全指南
查看>>
Spark源码分析 -- SchedulableBuilder
查看>>
《HTML5+CSS3网页设计入门必读》——第1章 理解Web的工作方式1.1 HTML和WWW简史
查看>>
真的吗?算法谋取暴利,让你多花钱
查看>>
Linux 内核测试和调试(5)
查看>>
指针与数组
查看>>
Ubuntu 14.04中修复默认启用HDMI后没有声音的问题
查看>>
《C++面向对象高效编程(第2版)》——1.12 OOP 范式和语言
查看>>
《Java遗传算法编程》—— 1.4 进化计算的优势
查看>>
《R语言数据挖掘》——2.3 混合关联规则挖掘
查看>>
Commons IO 官方文档
查看>>
《精通Linux设备驱动程序开发》——第1章 引言 1.1演进
查看>>
如何使用 Kali Linux 黑掉 Windows
查看>>
《趣题学算法》—第0章0.4节算法的正确性
查看>>
《iOS 8案例开发大全》——实例008 实现断点调试
查看>>
Android优化系列一: 日志清理
查看>>
python 下载 图片、音乐、视频 和 断点续传
查看>>
《C语言及程序设计》程序阅读——程序的多文件组织
查看>>
关于大数据的十个有力事实
查看>>