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

快速入门

版本说明

环境准备

示例代码

相关推荐
easy_coder1 天前
AI Agent 真正的上限,不在 Skill 数量,而在边界设计
人工智能·云计算
TG_yunshuguoji1 天前
阿里云代理商:百炼大模型技术解析与应用指南
服务器·阿里云·云计算
G31135422731 天前
零门槛实现 TRTC 音视频流转推各大直播 CDN
大数据·人工智能·ai·云计算
bingyan03711 天前
squid-基于rockylinux8配置内网代理访问阿里云软件源
阿里云·代理·squid·软件源
Huy-C1 天前
云计算案例排错(云上4)
linux·运维·云计算
JamesShi1682 天前
中国云计算市场由阿里云、华为云和腾讯云三大巨头主导,今天给大家分享一下它们之间的区别
云计算
diablobaal2 天前
云计算学习100天-第102天-Azure入门4
学习·云计算·azure
ZStack开发者社区2 天前
云边协同 智启未来 | 阿里云 × ZStack 云边一体解决方案正式落地
阿里云·云计算·边缘计算
普通网友2 天前
阿里云国际版服务器,真的是学生党的性价比之选吗?
后端·python·阿里云·flask·云计算