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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 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 事务模式,在使用的过程一定注意下。 

相关文章
|
1月前
|
消息中间件 API 持续交付
后端开发中的微服务架构实践####
【10月更文挑战第21天】 本文深入探讨了微服务架构在后端开发中的应用,从基本概念出发,详细阐述了微服务的核心优势、设计原则及关键技术。通过实际案例分析,揭示了微服务如何助力企业应对复杂业务需求,提升系统的可扩展性、灵活性与可靠性。同时,也指出了实施微服务过程中可能面临的挑战,并提供了相应的解决方案和最佳实践。 ####
31 3
|
8天前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
|
23天前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
22天前
|
消息中间件 运维 安全
后端开发中的微服务架构实践与挑战####
在数字化转型的浪潮中,微服务架构凭借其高度的灵活性和可扩展性,成为众多企业重构后端系统的首选方案。本文将深入探讨微服务的核心概念、设计原则、关键技术选型及在实际项目实施过程中面临的挑战与解决方案,旨在为开发者提供一套实用的微服务架构落地指南。我们将从理论框架出发,逐步深入至技术细节,最终通过案例分析,揭示如何在复杂业务场景下有效应用微服务,提升系统的整体性能与稳定性。 ####
34 1
|
23天前
|
消息中间件 运维 API
后端开发中的微服务架构实践####
本文深入探讨了微服务架构在后端开发中的应用,从其定义、优势到实际案例分析,全面解析了如何有效实施微服务以提升系统的可维护性、扩展性和灵活性。不同于传统摘要的概述性质,本摘要旨在激发读者对微服务架构深度探索的兴趣,通过提出问题而非直接给出答案的方式,引导读者深入
43 1
|
24天前
|
负载均衡 监控 API
后端开发中的微服务架构实践与挑战
本文深入探讨了微服务架构在后端开发中的应用,分析了其优势和面临的挑战,并通过案例分析提出了相应的解决策略。微服务架构以其高度的可扩展性和灵活性,成为现代软件开发的重要趋势。然而,它同时也带来了服务间通信、数据一致性等问题。通过实际案例的剖析,本文旨在为开发者提供有效的微服务实施指导,以优化系统性能和用户体验。
|
1月前
|
消息中间件 运维 开发者
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在后端开发中的应用,从其核心概念、设计原则到实际部署过程中面临的挑战进行了全面剖析。不同于传统的单体应用,微服务通过将复杂系统拆解为一系列小型、独立的服务,提高了系统的灵活性和可维护性。然而,这种架构的转变也伴随着服务间通信、数据一致性、部署复杂性等新问题。本文旨在为开发者提供一套应对这些挑战的策略,同时分享一些成功案例,以期促进微服务架构的有效实施。 ####
|
1月前
|
缓存 负载均衡 API
后端开发中的微服务架构实践与挑战####
在数字化转型的浪潮中,微服务架构凭借其高度的可扩展性、灵活性及易于维护的特点,成为众多企业后端开发的首选架构模式。本文将深入探讨微服务架构的核心理念,通过具体案例分析其在实际应用中的实践策略与面临的挑战,为读者提供一份详尽的微服务架构实施指南。 ####
|
28天前
|
消息中间件 监控 API
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,分析了其优势、实施过程中的关键考虑因素及面临的挑战。不同于传统的单体应用,微服务通过拆分功能模块为独立服务,提升了系统的灵活性和可维护性。我们将从微服务的基本概念入手,逐步剖析其在真实场景下的应用案例,并讨论如何有效应对服务间通信、数据一致性等复杂问题,旨在为开发者提供一套实用的微服务落地指南。 ####
24 0
|
29天前
|
安全 测试技术 持续交付
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过一个虚构项目案例,详细阐述了从单体架构向微服务架构转型的过程、面临的挑战及解决方案。不同于常规摘要的概述性质,本文摘要旨在直接引入核心议题——如何有效实施微服务以提升系统的可扩展性、灵活性和容错能力,同时揭示转型过程中常见的技术陷阱与最佳实践策略,为读者提供实战指南。 ####
22 0