带你读《企业级云原生白皮书项目实战》——6.3.3 RocketMQ 事务消息的金融应用场景(2)

简介: 带你读《企业级云原生白皮书项目实战》——6.3.3 RocketMQ 事务消息的金融应用场景(2)

《企业级云原生白皮书项目实战》——第六章 云原生最佳实践——6.3 基于 RocketMQ 的基金数字化陪伴体系的架构实践——6.3.3 RocketMQ 事务消息的金融应用场景(1): https://developer.aliyun.com/article/1227798?groupCode=supportservice


6.3.3.3 分布式事务方案对比


在博时基金的业务场景下,需要解决的问题是事务一致性与服务解耦度之间的矛盾,因此我们的目标是让主从事务解耦,保证核心逻辑稳定,同时不因为解耦而牺牲最终一致性。因此,当时做出了几种不同的解决方案:

第一种方案:最常见普通消息+异步对账,这个方案的问题是无法保证主事务的执行和入队同时成功,需要时效性低的对账补偿解决,一致性只是较高。

第二种方案:本地消息表,对比上一种做法,它由业务将写入消息表放到主事务中,把主事务和入队变成一个原子操作,然后业务读取入队记录,自己投递给从事务。它的缺点是主事务和 消息表在存储上是耦合的,没有解耦度。

第三种方案:引入 XA 事务,是个两阶段提交的协议,实现难度较大。而且面临两个问题:一是这是一种同步阻塞协议,有锁占用导致并发不会太高,另外就是XA事务过程中,在参与者投赞成票后,如果协调者发生故障,节点不清楚应该提交还是中止,只能等待协调者恢复。这时候可能会出现业务中断。

第四种方案:TCC,专门处理分布式事务的TCC,只侧重于一致性,无解耦度,也是不可行。

第五种方案:事务消息,它能同时兼顾解耦度和一致性,是最合适的模式。最终我们选择了RocketMQ的事务消息作为分布式事务的解决方案。

image.png

图:五种解决方案详情


6.3.3.4 RocketMQ 事务消息核心流程


基于RocketMQ的事务消息搭建事务中心,协调分布式事务的推进和回滚。以优惠购为例,核心流程如下:

第一阶段:Prepare 阶段,即业务系统将RocketMQ 的半事务消息发送到事务中心,事务中心不做发布,等待二次确认。这个阶段RocketMQ的半消息在消费者端是感知不到的。

第二阶段:业务系统执行主事务,即购买货币基金。

第三阶段:主事务成功后commit到事务中心,由事务中心投递消息到从事务。如果主事务失败,就投递rollback给事务中心。这里需要两阶段提交的原因是:普通的入队操作无论放在主事务之前还是之后都无法保证最终一致。如果先执行主事务,再入队,那么可能在入队前,业务会宕机,就没有机会再入队了。如果先入队再执行主事务,那么可能主事务没有执行成功,但是从事务执行成功了,业务逻辑就会发生错乱。

image.png

图:事务消息解决分布式事务


由于网络抖动等原因,可能导致事务消息的二次确认丢失。此时需要依赖某种机制恢复整个分布式事务的上下文,RocketMQ 提供的反查机制正是为解决分布式事务中的超时问题而设计的。 我们的事务中心的反查机制流程主要是,先检查事务中心的内部状态,再通过反查接口检查本地事务的执行结果,恢复事务上下文后,正常推进后续的流程。

image.png

图:事务消息可靠性保障


《企业级云原生白皮书项目实战》——第六章 云原生最佳实践——6.3 基于 RocketMQ 的基金数字化陪伴体系的架构实践——6.3.3 RocketMQ 事务消息的金融应用场景(3): https://developer.aliyun.com/article/1227771?groupCode=supportservice

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
7天前
|
Cloud Native Devops 持续交付
探索云原生架构:为企业数字化转型插上翅膀
【4月更文挑战第26天】 随着企业对敏捷性、可扩展性和成本效率的不断追求,云原生技术正成为推动数字化转型的关键力量。本文深入剖析了云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps实践,探讨它们如何协同工作以支持动态环境。通过分析多个行业案例,我们揭示了云原生实施的最佳实践,并讨论了在采纳云原生过程中面临的挑战及其解决方案。文章旨在为决策者提供一个清晰的云原生技术蓝图,帮助他们构建更加灵活和高效的业务模型。
|
11天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第22天】 随着企业加速其数字化转型步伐,云原生架构已成为实现敏捷性、可扩展性和资源优化的关键技术。本文深入探讨了云原生的概念、核心组件以及如何在组织中实施云原生架构以促进业务创新和效率提升。通过对容器化、微服务、持续集成/持续部署(CI/CD)等技术的讨论,揭示了云原生如何助力企业在竞争激烈的市场环境中保持领先。
|
3天前
|
运维 Cloud Native Devops
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第30天】 随着企业加速迈向数字化转型,云原生架构成为支撑这一进程的核心技术。本文将探讨云原生技术如何促进企业敏捷性、可扩展性和资源优化,以及它如何帮助企业保持竞争优势。我们将深入分析微服务、容器化、持续集成和持续部署(CI/CD)以及DevOps文化等云原生核心概念,并讨论它们如何共同塑造现代应用开发和运维的最佳实践。
|
5天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第27天】 随着企业加速其数字化转型的步伐,云原生架构已成为推动创新与实现敏捷性的关键技术。本文将深入探讨云原生技术如何助力企业在竞争激烈的市场中保持领先地位,包括对微服务、容器化、持续集成和持续部署(CI/CD)以及无服务器计算等核心技术的详细分析。同时,文中还将讨论实施云原生架构时面临的挑战与克服这些挑战的策略,为企业提供一条清晰可行的转型路径。
|
6天前
|
存储 分布式计算 分布式数据库
【专栏】云计算与分布式系统架构:驱动数字化时代的创新引擎
【4月更文挑战第27天】本文探讨了云计算与分布式系统架构在数字化时代的关键作用。云计算,凭借弹性、可扩展性和高可用性,提供便捷的计算环境;分布式系统架构则通过多计算机协同工作,实现任务并行和容错。两者相互依存,共同推动企业数字化转型、科技创新、公共服务升级及数字经济发展。虚拟化、分布式存储和计算、网络技术是其核心技术。未来,深化研究与应用这些技术将促进数字化时代的持续进步。
|
2天前
|
设计模式 Cloud Native 算法
拥抱变化:我的技术适应之旅构建未来:云原生架构在企业数字化转型中的关键角色
【4月更文挑战第30天】 在技术的浪潮中,我学会了不仅仅是编码,还有如何与时俱进。本文记录了我从一名初出茅庐的开发者成长为一个能够适应不断变化技术环境的工程师的心路历程。从最初的困惑与挑战到后来的接纳与创新,我意识到,技术能力的提升和心态的转变同样重要。
|
2天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用构建高效微服务架构:后端开发的新范式
【4月更文挑战第30天】 随着企业加速其数字化进程,云原生架构已成为支撑复杂、可伸缩和灵活应用的骨干。本文探讨了云原生技术的崛起,重点分析了其在促进业务敏捷性、提高运营效率及推动创新方面的核心价值。通过深入剖析云原生生态系统的关键技术组件,如容器化、微服务、持续集成/持续部署(CI/CD)和DevOps实践,揭示了企业如何利用这些技术来构建和维护高度可用且动态的IT环境。文章还提出了一个多维度的采纳框架,帮助企业评估和实施云原生解决方案,以实现真正的业务价值。 【4月更文挑战第30天】在现代软件开发的快速演变中,微服务架构已经成为一种领先的设计模式,用于构建可扩展、灵活且容错的应用程序。与传
|
4天前
|
运维 Cloud Native Devops
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第29天】 随着企业加速推进数字化转型,云原生技术以其独特的弹性、敏捷性和可扩展性成为支撑现代应用的骨干。本文将深入探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps实践,并分析这些技术如何协同工作以提高企业的运营效率和市场响应速度。通过采用云原生方法,企业能够实现更快的应用开发周期,更高的资源利用率以及更灵活的业务部署模式,从而在竞争激烈的市场中保持领先。
|
4天前
|
Kubernetes Cloud Native 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第29天】 随着企业加速数字化进程,云原生技术以其灵活性、可扩展性和敏捷性成为支撑企业转型的重要力量。本文深入探讨了云原生架构的核心组件和设计原则,以及如何借助这些原则来优化企业的IT基础设施,实现快速响应市场变化的能力。通过分析微服务、容器化、持续集成/持续部署(CI/CD)等关键技术的实践应用,揭示了云原生架构如何助力企业提升运营效率,降低成本,并促进创新。
|
4天前
|
Cloud Native 安全 持续交付
探索云原生架构的未来:企业数字化转型的加速器
【4月更文挑战第28天】 随着企业加速其数字化转型的步伐,云原生架构作为一种创新的技术模式,正日益成为推动这一进程的关键因素。本文将深入探讨云原生技术的核心组件、实施策略以及面临的挑战,旨在为企业提供一个关于如何利用云原生架构促进业务敏捷性、可扩展性和创新能力的参考框架。通过分析最新的行业趋势和案例研究,我们将揭示云原生如何塑造企业应用开发的未来,并带来持续的业务价值。