跳到正文

RocketMQ 学习路线 ​

索引页。按「部署 → 消息类型 → 存储 → 可靠性 → 消费 → 运维 → 选型/AI」排列,每条标出这篇能带走的东西:命令、配置或判断依据。

版本基线:4.9(经典主从)、5.3(Proxy / Timer / Controller)、5.5(LiteTopic)。未标版本的 mqadmin 命令在 4.9 与 5.x 通用。

1. 部署:先让集群跑起来 ​

篇目解决的问题产物
01-架构与核心概念NameServer、Broker、CommitLog/ConsumeQueue 各自负责什么本地启动 namesrv + broker + proxy;mqadmin clusterList、mqadmin topicList;判据:同一 brokerName 下出现 brokerId 0/1

读完应能回答:Producer 为什么不直连 NameServer 发消息;NameServer 全挂后存量客户端为什么还能工作。

2. 消息类型:按语义选发送方式 ​

篇目解决的问题产物
02-消息类型与使用场景普通 / 顺序 / 延迟 / 事务 / 批量各自保证什么、代价是什么四类消息的最小发送代码;mqadmin topicStatus、consumerProgress 验证;4.x 18 级延迟与 5.x Timer 的分界

判据:业务要「同一订单有序」选顺序消息并接受队头阻塞;要「35 秒后执行」在 5.x 用 Timer,4.x 只能落到最近的预定义级别。

3. 存储:消息落在哪、为什么快 ​

篇目解决的问题产物
03-消息存储与持久化统一 CommitLog + 20 字节 ConsumeQueue + 三层 offsetstore/ 目录结构;mqadmin topicStatus、consumerProgress;flushDiskType、fileReservedTime、磁盘 75/85/90% 水位

判据:topicStatus 的 maxOffset 持续增长而 consumerProgress 的 diff 不降,是消费问题,不是存储问题。

4. 可靠性:副本与失败兜底 ​

篇目解决的问题产物
04-高可用与主从复制SYNC/ASYNC_MASTER 定 RPO,DLedger/Controller 定 RTO两节点主从配置;clusterList 观察;主备切换演练步骤
07-死信队列与消费重试消费失败后的重试阶梯与 DLQ 收口重试间隔表(总时长约 4h46m);topicStatus %RETRY%、%DLQ%;重投的正确做法
13-可靠事件投递:本地消息表与幂等业务写入与消息发送怎么不中断,重复投递怎么收口本地消息表的最小表结构与补偿任务;消费端幂等键设计

判据:RPO=0 需要同步复制或 DLedger 多数派;只配异步复制时,Master 宕机允许丢最后一段。

5. 消费:并行度的单位是 Queue ​

篇目解决的问题产物
05-消费者模型与负载均衡长轮询、20s Rebalance、四种分配策略的真实影响面8 Queue / 3 Consumer 的分配观察;mqadmin consumerProgress;Queue 数与 Consumer 数的配比

判据:Consumer 数超过 Queue 数,多出的实例不消费;Averagely 下任何成员变动都会触发全组重算。

6. 运维:出事时按现象查 ​

篇目解决的问题产物
08-生产故障场景处置积压 / 丢失 / 重复 / 卡住四类 SOPconsumerProgress、topicStatus、queryMsgByKey、resetOffsetByTime 的正确用法与风险
09-多活与容灾架构复制 + 切流 + 校验,而不是「双写」同城/异地/单元化取舍;切换与回滚清单
10-流控过滤与ACL过滤、三层流控、消息轨迹、ACL 四件事分开plain_acl.yml 最小配置;traceTopicEnable;订阅表达式
12-监控指标与告警写路径、分发、线程池、堆积、DLQ、主从的先兆与处置顺序getBrokerRuntimeInfo 看 putLatency99、dispatchBehindBytes、pageCacheLockTimeMills;consumerProgress 看 diff;exporter 默认 5557

判据:积压先看 consumerProgress 的 diff 与消费 TPS,再决定扩 Consumer 还是扩 Queue;resetOffsetByTime 只重置原 Topic 位点,不处理 DLQ。

7. 选型与 AI 场景 ​

篇目解决的问题产物
06-Kafka-vs-RocketMQ存储模型、副本、Topic 规模、延迟/事务/顺序、运维成本按版本标注的对比表与决策顺序
11-LiteTopic与AI会话会话级通道如何支撑 RAG / Agent / 推理削峰enableLmq 等 broker 配置;LITE 父 Topic 创建命令;gRPC 客户端设置 LiteTopic

判据:万级 Topic、需要延迟/事务/过滤,优先 RocketMQ 5.x;单 Topic 超大吞吐、流式生态,优先 Kafka。AI 会话用 LiteTopic,业务主链路仍用普通 Topic。

版本分界(避免把 4.x 结论套到 5.x) ​

能力4.95.x
延迟消息18 个固定级别Timer 时间轮,任意时间(timerMaxDelaySec 默认 86400s)
主备切换默认手工;可开 DLedger(4.5+)Controller 自动选主
协议RemotingRemoting + gRPC(Proxy)
会话通道无5.5 LiteTopic

生产检查清单 ​

上线前、运行中、故障时逐条核对:99-生产检查清单。

把一门技术讲透到既懂也会用