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

快速入门

版本说明

环境准备

示例代码

相关推荐
Zhang28573214 小时前
跨境业务选AWS区域避坑指南:美东、美西、新加坡、东京怎么选?
云计算·aws
DolitD1 天前
UE像素流与云渲染技术方案对比分析
3d·云原生·ue5·云计算·图形渲染
天府云创2 天前
面向 Personal Agent 增强长期记忆与个性化能力,阿里云升级Memory 服务
阿里云·云计算·memory·agent智能体·长期记忆·personal agent
yunlaodacom2 天前
AWS亚马逊云代理商:WAF登录接口请求洪泛,限速阈值怎么设置?
云计算·aws
长不大的杨瑞杰2 天前
OpenCode v2 配置工程实战:Config 优先级、JSONC、变量替换与多环境治理
人工智能·安全·云计算·软件工程·devops
longzhizhui9262 天前
Ubuntu 全版本 CVE-2026-98432 内核安全升级操作手册
ubuntu·网络安全·云计算·bash
yunlaodacom2 天前
做异地灾备,华为云国际站 OBS 跨地域复制该怎么配置?
安全·华为云·云计算
Elastic 中国社区官方博客2 天前
AgentHack Shanghai|基于阿里云AI搜索 Elasticsearch x Qoder 构建AI Agent应用
大数据·人工智能·elasticsearch·搜索引擎·阿里云·云计算·全文检索
知已难寻2 天前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件