开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(二十九)

简介: Spring Cloud微服务架构设计与开发实战课时3.8—阿里巴巴开源微服务分布式事务框架。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!

哈喽各位同学们大家好呀,今天是开发者学院中课程“Spring Cloud微服务架构设计与开发实战”的章节三的阿里巴巴开源微服务分布式事务框架 ”干货总结~是一起学习新课程吧!

课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇

课程名称:阿里巴巴开源微服务分布式事务框架

课程地址:https://developer.aliyun.com/learning/course/60/detail/1101

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java


阿里巴巴开源微服务分布式事务框架


各位同学大家好,欢迎继续收看Spring Cloud微服务架构实战系列课程,这一节课我们来讲一下如何去结合Spring Cloud去使用阿里巴巴的微服务分布式框架(Seata),Seata是阿里巴巴一个非常重要的微服务的解决方案。Seata可以认为是强势支持不同的微服务框架中的事务性的一个机制。 

 

  1. Seata微服务分布式事务框架 

Spring Cloud Seata 

1. Seata阿里巴巴开源的分布式事务框架,原名Fescar 

2. Simple Extensible Autonomous Transaction Architecture 

3. 是一套一站式分布式事务解决方案。 

4. 2007 开始,蚂蚁金服自主研发分布式事务分布式事务中间件 XTS(eXtended Transaction Service),在内部广泛应用并解决金融核心场景下跨数据库、跨服务数据一致性问题,最终以 DTX (Distributed Transactione Xtended)的云产品化展现,并依托蚂蚁金融云对外输出 

5. 与此同时,阿里巴巴中间件团队发布 TXC(Taobao Transaction Constructor),为集团提供分布式事务服务,于 2016 年对 TXC 进行产品化改造,形成 GTS(Global  

ransaction Service),依托阿里云对外输出 

6. 前身是2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast& EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案 

7. 2019年5月两个项目合并 

8. Seata 提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的布式解决方案 

9. https://github.com/seata/ 

10.支持Dubbo、Spring Cloud微服务分布式事务 

 

微服务本身是很难去支持分布式事务,它的一个很大的弱点,原因是在于它的协议,默认使用的是AGV协议,Rs协议本身并不支持事物特性。作为企业级开发的话,有很多重要的要求,但是Spring Cloud不支持。目前些场景下会用到基于微服务下的事务机制。微服务架构中那些事物绝大部分,都是弱事务机制,并没有实现真正意义上的事务的Sid特性。 

Seata早期叫fast(fast and easy),是阿里巴巴的集团的那两个项目后面合并了,白了就是更简单更好用的这样的一个分布式事务框架。不仅支持开放的 Double,包括其他的一些事务 

image.png 

阿里Seata发展路线图 

阿里Seata发展在不断迭代演化过来的,在微服务架构当中,可以不断的去切换不同的组件,还且可以不断的去升级改造。 

 

 

 

 

 

 

  1. Seata微服务分布式架构图 

image.png 

电商交易场景(无事务分布式架构图) 

微服务架构中大部分做的都是消息补偿,比如说搞个消息中间件,更新一下对面的服务或者搞个定时任务等,这种机制用的比较多。真正使用分布式事务的比较少,主要是考虑到性能问题。 

模拟下场景:比如用户要购买过程中,用户生成了一个订单,系统就生成订单服务,快递服务等,如果在抢购过程还要考虑库存问题,比如库存只有5条,但是订单购买了10条,要做判断是否成功,这个中间可能需要不同的数据来进行判断。还有就是数据的同步,比如同步积分,同步优惠券等一系列问题。这个在实际上微服务架构中这是很难实现的,目前阿里的Seata开源之后,就给我们在微服务架构提供一个非常重要的解决方案。 

image.png 

Seata分布式事务架构图 

每个技术框架、每个方案是在特定场景下使用的,并不强迫大家去使用,我们去了解它的原理,能够为我们以后架构设计能够多个选择。让大家能够更合理的进行技术选型,我们说很重要的原则,在做架构设计时,要综合考虑,包括成本,需求等等问题。 

 

  1. Seata微服务分布式事务框架实战 

image.png 

现在框架的机制大部分是基于补偿机制,它虽然模拟的早期分布式两提交协议,但不是真正意义上,没有强制去锁库,强制去搞分布式的一个所谓的概念,实际是尝试插入数据,然后在删除的。实际上是通过逻辑上的代码去模拟分布式事务。这样子的一个差别。其中有一个比较重要的注意的global section,叫全局事务。这设计模式,像提交协议包括一些阶梯的分布式框架,一定会有跟实物,事务的协调器,还有资源管理器这些角色参与进来,这个事务属于强事务,会严重影响系统性能。现在这些高等化系统绝大部分在事务这一块的话是选择了就是柔性事务。 

image.png 

代码需要加入Seata的依赖,可以直接去但是也要考虑一个版本的兼容性问题,阿里贡献的版本和实际Spring Cloud有存在1~2个版本的差异,需提前做测试下。 

image.png 

这里面也提供了一个统一的简化依赖包,但是也把配置放到文件里面,就直接去拿所有的关联包,咱们看看代码主要给大家是做一个扩展,Seata支持的几种模式,都是模拟分布式事务的场景,实际项目大家使用一定要慎重,本身事务会有更多的交易通信,协调工作,还有影响到系统。 

 Seata 提供了 AT、TCC、SAGA 和 XA 事务模式,在使用的过程一定注意下。 

相关文章
|
12月前
|
SQL 前端开发 关系型数据库
如何开发一套研发项目管理系统?(附架构图+流程图+代码参考)
研发项目管理系统助力企业实现需求、缺陷与变更的全流程管理,支持看板可视化、数据化决策与成本优化。系统以MVP模式快速上线,核心功能包括需求看板、缺陷闭环、自动日报及关键指标分析,助力中小企业提升交付效率与协作质量。
|
NoSQL 数据可视化 安全
如何开发一套车辆管理系统?(附架构图+流程图+代码参考)
本文介绍了如何通过搭建车辆管理系统(VMS)帮助企业摆脱传统管理方式,实现流程化、可视化、合规化和自动化。内容涵盖系统架构、关键功能模块、数据模型、API设计、前后端实现及实施建议,提供可落地的技术方案,助力企业降低隐形成本、提升管理效率与透明度,实现数据驱动决策。
|
12月前
|
JSON 文字识别 BI
如何开发车辆管理系统中的加油管理板块(附架构图+流程图+代码参考)
本文针对中小企业在车辆加油管理中常见的单据混乱、油卡管理困难、对账困难等问题,提出了一套完整的系统化解决方案。内容涵盖车辆管理系统(VMS)的核心功能、加油管理模块的设计要点、数据库模型、系统架构、关键业务流程、API设计与实现示例、前端展示参考(React + Antd)、开发技巧与工程化建议等。通过构建加油管理系统,企业可实现燃油费用的透明化、自动化对账、异常检测与数据分析,从而降低运营成本、提升管理效率。适合希望通过技术手段优化车辆管理的企业技术人员与管理者参考。
|
12月前
|
消息中间件 缓存 JavaScript
如何开发ERP(离散制造-MTO)系统中的生产管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO模式下的ERP生产管理模块,涵盖核心问题、系统架构、关键流程、开发技巧及数据库设计,助力企业打通计划与执行“最后一公里”,提升交付率、降低库存与浪费。
|
11月前
|
前端开发 JavaScript BI
如何开发车辆管理系统中的车务管理板块(附架构图+流程图+代码参考)
本文介绍了中小企业如何通过车务管理模块提升车辆管理效率。许多企业在管理车辆时仍依赖人工流程,导致违章处理延误、年检过期、维修费用虚高等问题频发。将这些流程数字化,可显著降低合规风险、提升维修追溯性、优化调度与资产利用率。文章详细介绍了车务管理模块的功能清单、数据模型、系统架构、API与前端设计、开发技巧与落地建议,以及实现效果与验收标准。同时提供了数据库建表SQL、后端Node.js/TypeScript代码示例与前端React表单设计参考,帮助企业快速搭建并上线系统,实现合规与成本控制的双重优化。
|
12月前
|
消息中间件 JavaScript 前端开发
如何开发ERP(离散制造-MTO)系统中的技术管理板块(附架构图+流程图+代码参考)
本文详解ERP(离散制造-MTO)系统中的技术管理板块,涵盖产品定义、BOM、工序、工艺文件及变更控制的结构化与系统化管理。内容包括技术管理的核心目标、总体架构、关键组件、业务流程、开发技巧与最佳实践,并提供完整的参考代码,助力企业将技术数据转化为可执行的生产指令,提升制造效率与质量。
|
12月前
|
消息中间件 JavaScript 关系型数据库
如何开发一套ERP(离散制造-MTO)系统(附架构图+流程图+代码参考)
本文介绍了面向离散制造-MTO(按订单生产)模式的ERP系统设计与实现方法。内容涵盖ERP系统定义、总体架构设计、主要功能模块解析、关键业务流程(订单到交付、BOM展开、MRP逻辑、排产等)、开发技巧(DDD、微服务、事件驱动)、参考代码示例、部署上线注意事项及实施效果评估。旨在帮助企业与开发团队构建高效、灵活、可扩展的ERP系统,提升订单交付能力与客户满意度。
|
11月前
|
运维 监控 安全
公链开发中的高可用架构设计要点
本指南提供公链高可用架构的可复用流程与模板,涵盖目标拆解、先决条件、分步执行、故障排查及验收标准,结合跨链DApp与量化机器人案例,提升落地效率与系统稳定性。
|
11月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
1486 2
Spring Boot 3.x 微服务架构实战指南
|
12月前
|
监控 供应链 前端开发
如何开发ERP(离散制造-MTO)系统中的财务管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO企业ERP系统中财务管理模块的搭建,聚焦应收账款与应付账款管理,涵盖核心功能、业务流程、开发技巧及Python代码示例,助力企业实现财务数据准确、实时可控,提升现金流管理能力。
1359 32