阿里云 - 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,方便后续进行业务恢复或回溯

快速入门

版本说明

环境准备

示例代码

相关推荐
AKAMAI5 小时前
AI需要防火墙,云计算需要重新构想
人工智能·云原生·云计算
ciku6 小时前
Spring AI 集成阿里云百炼平台
人工智能·spring·阿里云
Agome996 小时前
Docker之自定义jkd镜像上传阿里云
阿里云·docker·容器
是乐谷1 天前
阿里云杭州 AI 产品法务岗位信息分享(2025 年 8 月)
java·人工智能·阿里云·面试·职场和发展·机器人·云计算
青岛佰优联创新科技有限公司2 天前
移动板房的网络化建设
服务器·人工智能·云计算·智慧城市
夕阳与风馨2 天前
三分钟搞懂云计算三大模型:SaaS、PaaS、IaaS 是怎么在业务中“各司其职”的?
后端·云计算
玩转以太网2 天前
3 种方式玩转网络继电器!W55MH32 实现网页 + 阿里云 + 本地控制互通
网络·物联网·阿里云
weixin_307779132 天前
AWS Lambda解压缩S3 ZIP文件流程
python·算法·云计算·aws
运维行者_2 天前
使用Applications Manager进行 Apache Solr 监控
运维·网络·数据库·网络安全·云计算·apache·solr
Britz_Kevin4 天前
从零开始的云计算生活——激流勇进,kubernetes模块之Pod资源对象
kubernetes·云计算·生活·#pod