首页 > 其他分享 >【❧消息队列】解析 RocketMQ 业务消息——“事务消息”

【❧消息队列】解析 RocketMQ 业务消息——“事务消息”

时间:2023-05-26 09:13:58浏览次数:35  
标签:RocketMQ 事务 队列 业务 购物车 消息 变更

在分布式系统调用场景中存在这样一个通用问题,即在执行一个核心业务逻辑的同时,还需要调用多个下游做业务处理,而且要求多个下游业务和当前核心业务必须同时成功或者同时失败,进而避免部分成功和失败的不一致情况出现。简单来说,消息队列中的“事务”,主要解决的是消息生产者和消费者的数据一致性问题。本篇文章通过拆解 RocketMQ 事务消息的使用场景、基本原理、实现细节,帮助大家更好的理解和使用 RocketMQ 的事务消息。

为什么需要事务消息

以电商交易场景为例,用户支付订单这一核心操作的同时会涉及到下游物流发货、积分变更、购物车状态清空等多个子系统的变更。当前业务的处理分支包括:

  • 主分支订单系统状态更新:由未支付变更为支付成功;
  • 物流系统状态新增:新增待发货物流记录,创建订单物流记录;
  • 积分系统状态变更:变更用户积分,更新用户积分表;
  • 购物车系统状态变更:清空购物车,更新用户购物车记录。

 

标签:RocketMQ,事务,队列,业务,购物车,消息,变更
From: https://www.cnblogs.com/xfeiyun/p/17433543.html

相关文章

  • 【RocketMQ】NameServer总结
    NameServer是一个注册中心,提供服务注册和服务发现的功能。NameServer可以集群部署,集群中每个节点都是对等的关系(没有像ZooKeeper那样在集群中选举出一个Master节点),节点之间互不通信。服务注册Broker启动的时候会向所有的NameServer节点进行注册,注意这里是向集群中所有的NameServ......
  • RabbitMQ的消息可靠性
    RabbitMQ如何保证消息可靠性?1.开启生产者确认机制,确保生产者的消息能到达队列。2.开启持久化功能,确保消息未消费前在队列中不会丢失。3.开启消费者确认机制为auto,由Spring确认消息处理成功后完成ack。4.开启消费者失败重试机制,并设置MessageRecoverer,多次重试失败后将消息投递......
  • python 发送微信消息
    python自动化,可以模拟键盘输入,因此,可以控制微信,发送消息,代码如下:1importsys2importpyautogui3importpyperclip4importtime5importconfigparser67"""8安装依赖:9pipinstallpyautoguipyperclippyinstaller1011打包成exe:12pyins......
  • IBM MQ - 连接远程队列管理器报AMQ4036错误
    解决方法: 首先确定好服务器连接通道是否正常,如SERVER_CHL;修改其相关属性: ALTERCHL('SERVER_CHL')CHLTYPE(SVRCONN)MCAUSER('mqm')以上的意思是为其创建一个mqm的用户标识。然后再连接该远程队列管理器时,在属性用户标识中填写mqm......
  • RabbitMQ消费消息方法basicConsume
    RabbitMQ-消费消息 Address[]addresses=newAddress[]{newAddress(IP_ADDRESS,PORT)};/***1.建立连接工厂*/ConnectionFactoryconnectionFactory=newConnectionFactory();connectionFactory.setUsername(USER_NAME);......
  • 【消息队列】概览
    消息队列作用:解耦、异步、削峰(大促)引入的问题:如何保证消息的高可用如何保证消息消费的幂等性如何处理消息丢失问题如何保证消息的顺序性如何解决消息积压如何保持数据一致需关注的技术实现:1、存储模型:如何快速的读写 ......
  • RabbitMQ之消息确认机制
    RabbitMQ之消息确认机制标签(空格分隔):php,rabbitmq在使用RabbitMQ的时候,我们可以通过消息持久化操作来解决因为服务器的异常奔溃导致的消息丢失,除此之外我们还会遇到一个问题,当消息的发布者在将消息发送出去之后,消息到底有没有正确到达broker代理服务器呢?如果不进行特殊配置的话......
  • 装载问题-分支限界法-队列式分支限界法
    装载问题实质: 装载问题是一个子集选取问题,因此其解空间树是一颗子集树。这里实现队列式分支限界法,对难理解地方做了注释。#include<bits/stdc++.h>usingnamespacestd;typedefstructQNode{QNode*parent;intlchild;intweight;}QNode;intn;intc;int......
  • Delphi 12 最新消息
    1.新版本将集成Skia4Delphi。这绝对是有史以来最重要的更新,官方通过深度集成Skia4Delphi,将实现更高质量的界面,更有效率的界面,从此,毛刺现象将成为历史!2.C++将集成Visual Assist。这结于C++用户来说,绝对的福音!3.RTL,IDE,Compiler,Platform等质量优化与改进新版将在这几个方面,继续......
  • Luogu P1903 [国家集训队] 数颜色 / 维护队列
    题目来源https://www.luogu.com.cn/problem/P1903[国家集训队]数颜色/维护队列题目描述墨墨购买了一套\(N\)支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问。墨墨会向你发布如下指令:\(Q\L\R\)代表询问你从第\(L\)支画笔到第\(R\)支画笔中共有几种......