一、整体定位 核心特点必背重点RocketMQ 是阿里开源分布式消息中间件主打高吞吐、高可用、低延迟、事务消息、顺序消息、重试队列广泛用于异步解耦、流量削峰、消息推送、分布式事务。核心优势重点高吞吐单机支持十万级 TPS磁盘顺序写优化高可用主从架构、集群部署支持故障自动切换消息类型丰富普通消息、顺序消息、延时消息、事务消息、重试 / 死信消息可靠投递消息持久化、ACK 确认、重试机制保证不丢消息轻量易运维架构简单部署、扩容、监控友好二、整体架构核心重中之重1. 四大核心组件必记1NameServer 名称服务器作用路由注册、路由发现轻量级注册中心特点无状态、可集群部署多节点保证高可用流程Broker 主动上报路由信息 → 生产者 / 消费者先连 NameServer 获取 Broker 地址再直连 Broker2Broker 消息服务器核心存储节点整个 RocketMQ 最核心角色负责消息接收、存储、转发、推送。角色划分Master 主节点读写都支持负责接收生产消息Slave 从节点只读不写同步 Master 数据做负载 容灾部署模式主从架构1 主多从支持异步 / 同步双写端口对外通信端口默认10911HA 主从同步端口默认109123Producer 消息生产者负责发送消息到 Broker集群模式支持集群部署负载均衡发消息发送模式重点同步发送、异步发送、单向发送4Consumer 消息消费者负责消费 Broker 推送的消息也就是 MQ 监听端两种消费模式高频考点 / 业务重点集群消费默认同组消费者负载均衡一条消息只被一个实例消费广播消费同组所有消费者全量接收同一条消息消费方式主动拉取 (Pull)/ 服务端推送 (Push)日常多用 Push2. 架构流转全景精简生产者 → NameServer 获取 Broker 路由 → 直连 Broker 存消息消费者 → NameServer 获取 Broker 路由 → 直连 Broker 拉 / 推消息重点生产者、消费者不直接互相通信全程只和 Broker 交互三、消息模型 消息结构业务使用核心1. 基础概念重点1Topic 主题消息分类标识同一业务消息归到一个 Topic逻辑概念Broker 上物理分片存储2Message Queue 消息队列分区Topic 的物理分片一个 Topic 拆分为多个 Queue作用并发读写、实现顺序消息、负载均衡顺序消息依赖单 Queue 内消息有序多 Queue 无法全局有序3ConsumerGroup 消费者组日志里出现的重点plaintext00000000000000000000000000000477_T_APPAY_PAYMENT_ACTIVITY_STATUS_DATA_PRO_sub-payment-group同一类消费者归为一个消费组规则集群消费组内实例均分 Queue提高消费并发消费位点Offset消费组独立维护位点不同组互不影响4Offset 偏移量消息消费位置标记记录当前消费到队列的第几条持久化在 Broker重启服务不会重复从头消费正常情况2. 完整消息结构消息主体 Body 消息唯一标识MsgId 自定义属性Tags、Keys 等Tag 标签Topic 内消息二次过滤消费端按需筛选四、消息投递 消费机制可靠性核心1. 消息发送流程生产者组装消息 → 路由寻址到 BrokerBroker 接收消息 →磁盘持久化CommitLog返回投递结果给生产者2. 消息存储机制重点三大存储文件CommitLog所有消息统一物理存储文件核心顺序写性能极高ConsumeQueue逻辑队列索引记录消息在 CommitLog 的位置IndexFile消息索引文件支持按 Key / 时间检索核心特性磁盘顺序写 内存页缓存是 RocketMQ 高吞吐的根本3. 消费可靠性保证消息不丢、不重复1消费 ACK 机制关键消费者成功执行业务后手动 / 自动提交 Offset未提交 ACKBroker 判定消费失败重试投递2消息重试队列消费失败的消息不会直接丢弃进入重试队列有重试次数上限超过次数转入死信队列 (DLQ)死信消息人工排查处理不再自动重试3重复消费问题网络抖动、ACK 丢失会导致消息重复业务解决方案接口幂等性唯一主键去重五、五大消息类型业务开发必用重点1. 普通消息最基础无顺序、无延时通用异步场景。2.顺序消息高频重点分类全局顺序、分区顺序常用实现原理同一类有序消息发送到同一个 MessageQueue限制单 Queue 串行消费并发下降3.延时消息消息投递后延迟指定时间再被消费定时场景不支持任意时间内置延时等级1s~2h 档位4.批量消息多条消息打包发送提升吞吐注意单批大小限制。5.事务消息RocketMQ 特色重点实现分布式事务最终一致性半消息 回查机制解决跨服务事务问题。流程半消息发送 → 执行本地事务 → 提交 / 回滚消息 → 定时回查补状态。六、高可用设计运维 架构重点NameServer 集群多节点部署单点故障不影响路由Broker 主从集群Master 宕机Slave 接管读请求保证消费不中断同步双写主从同时落盘防止消息丢失消息持久化断电 / 重启消息不丢失故障重试生产、消费失败均有重试机制七、结合日志的对应解读落地对照RocketmqRemotingRocketMQ 原生 Netty 通信层负责客户端与 Broker10.62.212.65:10911长连接NettyClientWorkerThreadRocketMQ 客户端网络线程closeChannel应用优雅停机 → 消费者 Bean 执行 close () → 主动断开与 Broker 的长连接消费组日志中超长串即为ConsumerGroup用来区分消费实例、维护消费位点关键总结看到的 “监听关闭”应用进程退出RocketMQ 客户端主动断开长连接并非 MQ 服务端故障。八、高频核心考点 / 总结极简背诵版四大组件NameServer、Broker、Producer、Consumer核心存储CommitLog主存储 ConsumeQueue索引分组概念Topic大类、Tag小过滤、ConsumerGroup消费组消费模式集群消费、广播消费可靠性保障持久化、ACK、重试队列、死信队列、主从架构特色能力顺序消息、延时消息、事务消息本质消费者是客户端长连接不监听本地端口主动连接 Broker 服务端口。