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

快速入门

版本说明

环境准备

示例代码

相关推荐
m0_694845575 小时前
服务器需要备案吗?在哪些地区需要备案?
linux·运维·服务器·云计算
云资源服务商11 小时前
解锁阿里云日志服务SLS:云时代的日志管理利器
服务器·阿里云·云计算
朱包林12 小时前
day45-nginx复杂跳转与https
linux·运维·服务器·网络·云计算
一只小毛驴1 天前
RocketMq 学习【环境调试】
rocketmq
m0_694845571 天前
服务器如何配置防火墙规则开放/关闭端口?
linux·服务器·安全·云计算
安 当 加 密1 天前
多云密钥统一管理实战:CKMS对接阿里云/华为云密钥服务
数据库·阿里云·华为云
观测云1 天前
观测云 × AWS SSO:权限治理可观测实践
云计算·aws
G皮T1 天前
【云计算】企业项目 & 策略授权
云计算·iam·公有云·企业项目·策略授权·统一身份认证
draymond71071 天前
阿里云-spring boot 接入SLS日志
阿里云
马里马里奥-2 天前
在Windows系统部署本地智能问答系统:基于百度云API完整教程
windows·云计算·百度云