使用RocketMQ 做Spring Cloud异步场景分布式事务

本文介绍了如何使用RocketMQ的事务消息解决微服务架构中的异步数据一致性问题。通过事务消息,确保本地事务与MQ消息发送的原子性,结合重试和死信队列处理消费失败的情况,实现分布式事务。
摘要由CSDN通过智能技术生成

一、背景

在微服务架构中,我们常常使用异步化的手段来提升系统的 吞吐量 和 解耦 上下游,而构建异步架构最常用的手段就是使用 消息队列(MQ) ,那异步架构怎样才能实现数据一致性呢?本文主要介绍如何使用 RocketMQ 的 事务消息 来解决一致性问题。

RocketMQ是阿里巴巴开源的分布式消息中间件,目前已成为 Apache 的顶级项目。历经多次天猫双十一海量消息考验,具有高性能、低延时和高可靠等特性

PS:同步场景怎样保证一致性?请看文章《 Spring Cloud同步场景分布式事务怎样做?试试Seata 》

二、MQ选型

可以看到在 业务处理 方面来说 RocketMQ 优于其他对手,而且原生支持 事务消息

PS:业务系统用的是其他 MQ 产品但是又需要 事务消息 怎么办?学习原理自己开发实现!

三、什么是事务消息

例如下图的场景:生成订单记录 -> MQ -> 增加积分

我们是应该先 创建订单记录 ,还是先 发送MQ消息 呢?

  1. 先发送MQ消息:这个明显是不行的,因为如果消息发送成功,而订单创建失败的话是没办法把消息收回来的
  2. 先创建订单记录:如果订单创建成功后MQ消息发送失败 抛出异常 ,因为两个操作都在本地事务中所以订单
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值