当前位置: 首页 > news >正文

java B2B2C Springcloud多租户电子商城系统- 分布式事务

分布式事务是面向服务,微服务架构不可避免的问题,而且为了性能考虑,一般不使用刚性事务,而使用柔性事务。柔性事务中又有可靠消息最终一致性,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、统一消息消费子系统

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

到此,基于可靠消息最终一致性的分布式事务解决方案已经总结完了。 java B2B2C Springcloud多租户电子商城系统

转载于:https://juejin.im/post/5c4a66b46fb9a049a62cf1b4

相关文章:

  • Shell 脚本 100 例《四》
  • Powershell 批量重命名
  • 浙江台州警方侦破特大制售假酒案 涉案金额超4000万元
  • 《SQL必知必会》读书笔记
  • Unity C#编程优化——枚举
  • 正则表达式知识点汇总
  • 山西政协委员建言探索农业托管模式 解决“谁来种地”问题
  • 发现操作系统的数据库出现死锁如何处理
  • 微服务架构到底应该如何选择?
  • 搭建MySQL高可用负载均衡集群
  • Rust发布1.32版本,跟踪、模块化、宏等方面均有改进
  • python文本 字符串逐字符反转以及逐单词反转
  • 海南2018年共审理涉黑涉恶案件82件456人
  • 家电新政促销费 国美智能、绿色家电销售迎政策红利
  • 机器学习新手必学十大算法指南
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • ES2017异步函数现已正式可用
  • Git的一些常用操作
  • Java 多线程编程之:notify 和 wait 用法
  • Java精华积累:初学者都应该搞懂的问题
  • JS 面试题总结
  • Laravel Mix运行时关于es2015报错解决方案
  • maven工程打包jar以及java jar命令的classpath使用
  • Mybatis初体验
  • Python学习之路13-记分
  • Shadow DOM 内部构造及如何构建独立组件
  • webgl (原生)基础入门指南【一】
  • 大数据与云计算学习:数据分析(二)
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 判断客户端类型,Android,iOS,PC
  • 前端技术周刊 2019-01-14:客户端存储
  • 前言-如何学习区块链
  • 如何实现 font-size 的响应式
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • const的用法,特别是用在函数前面与后面的区别
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (6)设计一个TimeMap
  • (C语言)二分查找 超详细
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (过滤器)Filter和(监听器)listener
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (区间dp) (经典例题) 石子合并
  • (十八)三元表达式和列表解析
  • (转)setTimeout 和 setInterval 的区别
  • (转)大型网站的系统架构
  • .NET Core中Emit的使用
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET Framework杂记
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .Net(C#)自定义WinForm控件之小结篇