阿里云 - RocketMQ入门

前言

  • 云消息队列 RocketMQ 版产品具备异步通信的优势,主要应用于【异步解耦】、【流量削峰填谷】等场景
  • 对于同步链路,需要实时返回调用结果的场景,建议使用RPC调用方案
  • 阿里云官网地址
  • RocketMQ官网地址

模型概述

  • 生产者生产消息并发送至服务端,消息被存储在服务端的【主题】中,消费者通过【订阅主题】消费消息

一、消息存储

  • 主题【Topic】
bash 复制代码
主题是【消息传输和存储】的【分组容器】,一个主题内部由多个队列组成。
  • 队列【MessageQueue】
bash 复制代码
队列是【消息传输和存储】的【实际单元容器】,类比于Kafka中的分区。
  • 消息【Message】
bash 复制代码
消息是队列中存储信息的【最小传输单元】

二、消息消费

  • 消费者分组【ConsumerGroup】
bash 复制代码
云消息队列发布订阅模型中定义的独立的消费身份分组,用于统一管理底层运行的多个消费者(Consumer)
同一个消费组的多个消费者必须保持消费逻辑和配置一致,共同分担该消费组订阅的消息,实现消费能力的水平扩展
  • 订阅关系【Subscription】
bash 复制代码
云消息队列发布订阅模型中消息过滤、重试、消费进度的规则配置
订阅关系以消费组粒度进行管理,消费组通过定义订阅关系控制指定消费组下的消费者如何实现消息过滤、消费重试及消费进度恢复等

三、消息过滤

  • 消费者订阅了某个主题后,消息队列会将该主题中的所有消息投递给消费者
  • 若消费者只需要关注部分消息,则可通过设置过滤条件在消息队列服务端进行过滤,只获取到需要关注的消息子集

四、消息类型

消息类型1:普通消息

  • 对消息的处理顺序、处理时机没有要求,只需要保证在异步解耦场景下保证消息被可靠的投递即可。

消息类型2:顺序消息

  • 要求上游的事件变更必须按照顺序传递到下游进行处理【股票交易系统中,实时接收股票价格变动消息,按顺序处理这些消息才能准确展示股票价格走势】

消息类型3:定时/延时消息

  • 适用于分布式定时调度触发和任务超时处理场景。【订单提交成功后,如果30分钟内没有付款则自动取消订单】

消息类型4:事务消息(最终一致性)

  • 用户支付订单成功的同时,需要级联通知1:物流发货2:积分变更等多个子系统的更新:
bash 复制代码
主分支订单系统状态更新:由未支付变更为支付成功
物流系统状态新增:新增待发货物流记录,创建订单物流记录
积分系统状态变更:变更用户积分,更新用户积分表

消息类型5:死信消息

  • 消费者出现异常,消息队列会根据消费重试策略重新投递该消息进行补偿,当重复投递的次数达到最大重试次数后还未成功,则消息会转为死信状态
  • 消息队列支持将这些死信消息保存至指定Topic,方便后续进行业务恢复或回溯

快速入门

版本说明

环境准备

示例代码

相关推荐
hrhcode2 小时前
DeepSeek-V4 全面解析:百万上下文时代的架构革命
人工智能·云计算·deepseekv4
_Evan_Yao5 小时前
内存映射文件与零拷贝:Kafka、RocketMQ 飞升的秘密通道
分布式·kafka·rocketmq
JWASX5 小时前
【RocketMQ 生产者和消费者】- 事务源码分析(2)
java·rocketmq·java-rocketmq
Java面试题总结5 小时前
证书 47 天就过期,还在手动续?聊聊我在 AWS 上的自动化方案
自动化·云计算·aws
yyuuuzz9 小时前
aws注册过程中的常见问题梳理
运维·服务器·网络·云计算·github·aws
Database_Cool_1 天前
在 RDS PostgreSQL 中实现 RaBitQ 量化
数据库·阿里云·ai·postgresql
yyuuuzz1 天前
aws注册过程中的常见注意事项
云计算·aws
倔强的猴子(翻版)1 天前
我用 Python 写了个排序库,一亿数据量下比 C 级 np.sort() 快 7 倍
人工智能·python·算法·阿里云·文心一言
LemonSmile_2 天前
CC Switch 配置 Claude Code 接入 阿里云百炼
阿里云·云计算·claude·百炼
yyuuuzz2 天前
aws 基础认知与实践注意点
运维·服务器·网络·云计算·github·aws