博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java B2B2C Springcloud多租户电子商城系统- 分布式事务
阅读量:6761 次
发布时间:2019-06-26

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

分布式事务是面向服务,微服务架构不可避免的问题,而且为了性能考虑,一般不使用刚性事务,而使用柔性事务。柔性事务中又有可靠消息最终一致性,TCC,最大努力通知三种解决方案。这里来说一说可靠消息最终一致性。

需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六

可靠消息最终一致性的实现难点在于如何做到可靠,那么对于任何一个可能导致失败的点都需要做相应的处理,而这些点总结起来其实只需要两个定时任务即可。在这里总结了一张图

字母表示失败的类型,比如A类型的失败情况为主动方业务未执行,或执行失败,存储状态为待发送状态。

具体说明:

1、业务执行前增加一个确认阶段

2、所有的失败归为三类(A,B,C)

3、A,B类的失败需要一个定时器处理,C类的失败需要一个定时器的处理

其他的一些细节:

1、我们必须要规定最大的重发次数,如果超过该次数,则需要标记为死消息。

2、对于死消息将不被定时任务处理,需要人工进行重发或处理。

3、对于重发的时间需要做一定的策略,一般重发次数越大,时间间隔越久。

最后我们来总结一下我们需要实现的内容

1、主动方需要提供业务是否执行成功的查询接口

2、被动方需要提供业务是否执行成功的查询接口

3、消息服务子系统

需要提供独立的数据库记录消息信息,修改消息信息状态,通过中间件发送消息

4、消息服务恢复子系统

主要通过定时任务处理A,B,C类失败信息

5、统一消息消费子系统

消息队列的消费者,统一执行各个业务的被动方任务

到此,基于可靠消息最终一致性的分布式事务解决方案已经总结完了。

转载地址:http://jabeo.baihongyu.com/

你可能感兴趣的文章
Google C++单元测试框架(Gtest)系列教程之二——断言、函数测试
查看>>
Apex Design Patterns
查看>>
windows、linux创建子进程
查看>>
I.MX6 DNS 查看、修改方法
查看>>
供应链是什么意思
查看>>
HTML5的学习资料(开发设计原则)
查看>>
应用程序栏【WP7学习札记之九】
查看>>
utf-8引发的页面空白
查看>>
Controller的要求
查看>>
(转) Android中shape的使用
查看>>
制作WinPE
查看>>
mysql中文字段排序( 按拼音首字母排序)的查询语句
查看>>
[置顶] 某大型银行深化系统技术方案之九:核心层之流程数据管理
查看>>
MVC把随机产生的字符串转换为图片
查看>>
《OOC》笔记(0)——为何要看这本书
查看>>
User mode Linux
查看>>
SQL Server2016 原生支持JSON
查看>>
LINUX 性能工具使用
查看>>
Atitit.Hibernate于Criteria 使用汇总and 关系查询 and 按照子对象查询 o9o
查看>>
android: Android Notification
查看>>