image

基础入门:认识RocketMQ | Apache RocketMQ 5.3 从入门到实战

前言

1. RocketMQ 定位与应用场景

RocketMQ 5.3 是 Apache 顶级分布式消息中间件,主打低延迟、高可靠、高吞吐,定位为“云原生时代的消息引擎”,核心解决分布式系统中异步通信、流量削峰、数据同步、分布式事务四大核心问题。

  • 典型应用场景:

    • 电商:大促订单削峰、下单后异步发券/通知
    • 金融:交易流水异步写入、跨系统事务一致性
    • 物联网:设备上报数据的高吞吐接收与分发

2. 学习本教程的前置知识

前置知识 掌握程度 核心要求
Java 基础 基础-进阶 熟悉面向对象、集合、多线程、Maven 依赖管理
分布式基础 入门 理解“集群/节点”“负载均衡”“高可用”基本概念
Linux 基础 入门 会执行基本命令(cd/ls/ps/nohup)、配置环境变量

第一部分 基础入门:认识RocketMQ

第1章 RocketMQ 简介与核心优势

1.1 什么是RocketMQ(官方定义+通俗解释)
  • 官方定义:RocketMQ 是一款基于分布式架构的消息中间件,提供低延迟、高可靠的消息发布与订阅服务,支持多种消息类型和部署模式。
  • 通俗解释:把 RocketMQ 看作“分布式系统的快递站”——业务系统(寄件人)把消息(包裹)交给 RocketMQ,RocketMQ 负责暂存并投递到目标系统(收件人),全程保证包裹不丢、不重、及时送达。
1.2 RocketMQ 发展历程与应用领域
阶段 核心节点 关键特性
2012 阿里内部诞生 解决双十一订单削峰问题
2016 开源并捐赠Apache 成为顶级项目,适配开源生态
2022 5.0 版本发布 云原生、多协议支持、轻量化
2023 5.3 版本发布 优化事务消息、提升集群稳定性
  • 核心应用领域:

    1. 互联网:电商、直播、社交的异步通知/流量削峰
    2. 金融:交易对账、风控数据同步
    3. 物联网:设备日志/数据的高吞吐接收
    4. 政企:跨系统数据交互、流程异步化
1.3 RocketMQ 核心优势(对比Kafka/ActiveMQ)
特性 RocketMQ 5.3 Kafka ActiveMQ
消息延迟 毫秒级 毫秒级 秒级
支持消息类型 普通/顺序/事务/延时 普通/延时 多类型但性能弱
单机吞吐量 百万级 TPS 百万级 TPS 万级 TPS
分布式事务支持 原生支持 需二次开发 弱支持
云原生适配 完善(Docker/K8s) 较好 较差
运维成本
本章小结
  1. 核心考点:RocketMQ 5.3 的定位、核心优势(尤其是事务消息/云原生适配);
  2. 关键结论:RocketMQ 兼顾性能与功能,是分布式系统异步通信的首选之一;
  3. 学习提示:所有特性以 5.3 版本官方文档为准,避免混淆旧版本差异。

第2章 RocketMQ 核心基本概念

image

2.1 消息核心载体(Topic/MessageQueue/Message)

官方概念图 :
Topic 是“消息分类文件夹”,每个 Topic 包含多个 MessageQueue(物理文件),Message 是文件夹里的“单张纸条”。

image

概念 英文 核心定义 通俗举例
主题 Topic 消息的逻辑分类标识,生产者发消息、消费者订阅消息的核心依据 电商场景:“order_topic”(订单消息)
消息队列 MessageQueue Topic 的物理分区,是消息存储/投递的最小单元,一个 Topic 可包含多个 Queue order_topic 下的 queue-0/queue-1
消息 Message 生产/消费的最小数据单元,包含业务数据(Body)和扩展属性(Tag/Key 等) 一条订单消息:{“orderId”:“123”,“amount”:99}
2.2 消息属性(Tag/Key/Offset/MessageView)
属性名称 英文 核心作用 使用场景
消息标签 Tag Topic 下的细粒度分类,用于消费者精准过滤消息 order_topic 下的“create”(创建订单)/“pay”(支付订单)
消息索引 Key 消息唯一标识,用于快速查询/追溯消息 用订单号作为 Key,查询该订单的消息投递状态
消息位点 Offset 消息在 Queue 中的唯一坐标(Long 型),标识消息位置 消费位点:记录消费者已消费到的 Offset
消息视图 MessageView 消息的只读接口,仅能读取属性/Body,不可修改 消费端获取消息后,通过 MessageView 读取内容
2.3 生产消费角色(Producer/Consumer/ConsumerGroup)

image

角色名称 英文 核心定义 关键特性
生产者 Producer 构建并发送消息到 RocketMQ 的运行实体 支持同步/异步/单向发送
消费者 Consumer 订阅并处理消息的运行实体 支持 Push/Pull 两种消费方式
消费组 ConsumerGroup 一组消费逻辑相同的 Consumer 集合,共同消费 Topic 消息,实现负载均衡 一个消费组对应一套消费逻辑,避免重复消费
2.4 高级消息相关概念
  1. 事务检查器(TransactionChecker)
    生产者侧的监听器,用于 RocketMQ 回查本地事务状态(比如下单后,检查库存是否扣减成功)。
  2. 事务状态(TransactionResolution)
    事务消息的核心状态,包含“提交/回滚/未决”三种:提交则投递消息,回滚则删除消息,未决则触发回查。
  3. 消费结果(ConsumeResult)
    消费者处理消息后返回的状态,仅“成功/失败”两种:失败则 RocketMQ 会重试投递。
2.5 核心运行概念
  1. 订阅关系
    消费者与 Topic 的绑定规则(比如订阅 order_topic 的 Tag=create),服务端基于订阅关系过滤并投递消息。
    实例:消费者订阅“order_topic:create”,仅接收订单创建的消息。
  2. 消息过滤
    按 Tag/SQL92 规则筛选消息,5.3 版本默认在服务端完成过滤,减少消费端无效数据传输。
    实例:用 SQL92 过滤“amount > 100”的订单消息。
  3. 消息轨迹
    消息从生产到消费的全链路日志(生产节点/投递节点/消费节点),5.3 版本可通过控制台一键开启。
    实例:排查“消息发送成功但消费不到”问题时,查看消息轨迹定位卡点。
  4. 消息堆积
    生产者发送速度 > 消费者处理速度,导致 Queue 中消息积压。
    实例:大促时订单消息每秒 10 万条,消费端仅能处理 5 万条,就会产生堆积。
本章小结
  1. 核心考点:Topic 与 MessageQueue 的关系、消费组的作用、消息过滤的方式;
  2. 关键结论:RocketMQ 所有操作围绕“Topic”展开,Queue 是性能扩展的核心;
  3. 学习提示:5.3 版本对“消息类型校验”做了强化,一个 Topic 仅允许发送一种类型消息(默认开启)。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐