MQ(消息队列)
本文件只负责模块导航、版本分流、索引与复习验收。机制、数据演绎、排障过程、项目话术和题目答案均以
00至08分册为准,入口不复制正文。
1. 模块定位、适用人群与版本边界
| 项目 | 说明 | 正文入口 |
|---|---|---|
| 模块定位 | 面向 Java(编程语言)高级开发面试,把 MQ(消息队列)的基础价值、三类产品机制、端到端可靠性、容量排障和项目表达组织成可回查的学习路径。 | 00-知识图谱与复习路线 |
| 适用人群 | 需要准备 Java(编程语言)高级开发、分布式系统、稳定性治理或项目架构面试,并有基础消息使用经验的开发者。 | 01-MQ(消息队列)价值、排队论与分治思想 |
| Kafka(分布式日志消息系统)边界 | 覆盖 3.9 与 4.x;存量迁移和 4.x 的 KRaft(Kafka Raft 元数据模式)边界以产品分册为准。 | 02-Kafka(分布式日志消息系统)架构、日志、副本与消费组 |
| RocketMQ(分布式消息队列)边界 | 覆盖 4.9.x 与 5.x;延迟、消息类型、高可用和客户端能力必须按实际小版本判断。 | 03-RocketMQ(分布式消息队列)架构、存储与消息类型 |
| RabbitMQ(消息队列)边界 | 覆盖 3.13 与 4.x;经典镜像队列迁移、仲裁队列和流式能力的差异以产品分册为准。 | 04-RabbitMQ(消息队列)交换机、确认与仲裁队列 |
版本相关回答必须先声明产品与版本,再引用对应分册;本入口不把某个小版本的行为外推到全部版本。
2. 00–08 分册导航
以下时长按“已有基础、边读边口述”的复习节奏估算;首次精读可在此基础上增加约一半时间。
| 顺序 | 分册 | 主要解决的问题 | 建议复习时长 |
|---|---|---|---|
00 | 知识图谱与复习路线 | 先确认模块边界、产品版本、分册依赖和验收口径。 | 15 分钟 |
01 | MQ(消息队列)价值、排队论与分治思想 | 建立异步、削峰、解耦、背压、积压和分治的基础判断。 | 45 分钟 |
02 | Kafka(分布式日志消息系统)架构、日志、副本与消费组 | 串起分区日志、副本复制、生产消费、位移和再均衡。 | 60 分钟 |
03 | RocketMQ(分布式消息队列)架构、存储与消息类型 | 串起路由、存储、复制、顺序、延迟和事务消息。 | 60 分钟 |
04 | RabbitMQ(消息队列)交换机、确认与仲裁队列 | 串起交换机路由、发布确认、消费确认、仲裁队列和死信。 | 50 分钟 |
05 | 可靠性语义、幂等、顺序与重试 | 统一三类产品的投递语义、失败窗口、幂等、顺序、重试、死信、补偿和对账。 | 60 分钟 |
06 | 容量、性能、积压与线上排障 | 完成容量估算、恢复时间计算、积压定位、故障止血和恢复验证。 | 60 分钟 |
07 | 项目案例:异步导出、库存、支付、物流、Runner(执行器)与 IoT(物联网) | 把技术判断落到六类简历项目的方案、风险、兜底、指标与口述。 | 75 分钟 |
08 | 综合面试题库 | 用跨章节追问树检查选型、可靠性、排障和项目表达是否闭环。 | 45 分钟 |
建议完整顺序:00 → 01 → 02/03/04 → 05 → 06 → 07 → 08。02、03、04 可按目标岗位调整先后,但进入 05 前至少完整读过目标产品分册。
3. 学习路径
flowchart LR
A["基础<br/>00 全景 + 01 价值与容量边界"]
B["产品机制<br/>02 / 03 / 04"]
C["可靠性<br/>05"]
D["容量排障<br/>06"]
E["项目案例<br/>07"]
F["综合题库<br/>08"]
A --> B --> C --> D --> E --> F图中每一阶段只表示阅读依赖:产品机制不能替代业务可靠性,可靠性结论也必须经过容量、事故和项目场景验证。
4. 产品选型快速表
| 主要场景 | 优先评估方向 | 选择时必须继续核对 | 结论去向 |
|---|---|---|---|
| 高吞吐事件流、日志留存、回放与多消费组 | Kafka(分布式日志消息系统) | 分区规划、副本确认、消费组、再均衡、保留策略和版本迁移。 | Kafka(分布式日志消息系统)产品分册 |
| 业务消息、顺序、延迟和事务消息 | RocketMQ(分布式消息队列) | 4.9.x/5.x 能力差异、消息类型、顺序粒度、延迟边界和高可用模式。 | RocketMQ(分布式消息队列)产品分册 |
| 灵活路由、任务队列、发布与消费双确认 | RabbitMQ(消息队列) | 交换机路由、不可路由消息、预取、仲裁队列、死信和 3.13/4.x 迁移边界。 | RabbitMQ(消息队列)产品分册 |
| 涉及库存、资金或外部副作用 | 先选业务一致性方案,再选消息产品 | 幂等键、状态机、重试分类、补偿、对账和人工介入。 | 跨产品可靠性分册 |
| 流量突发、积压恢复或下游限速 | 先完成容量与恢复目标计算 | 生产消费速率、消息大小、副本、保留、热点、顺序和下游承载。 | 容量与线上排障分册 |
快速表只用于缩小候选范围,不构成脱离业务量级、团队能力和版本约束的最终选型结论。
5. 图形与项目案例索引
| 索引类型 | 查阅内容 | 对应分册 |
|---|---|---|
| 总览图 | 异步、削峰、解耦、产品树、分册依赖、可靠性与排障路线。 | 00-知识图谱与复习路线 |
| 基础模型图 | 同步与异步、积压增长、背压、分治、热点与恢复时间。 | 01-MQ(消息队列)价值、排队论与分治思想 |
| Kafka(分布式日志消息系统)图 | 分区日志、副本复制、提交边界、消费位移、再均衡与故障恢复。 | 02-Kafka(分布式日志消息系统)产品分册 |
| RocketMQ(分布式消息队列)图 | 控制面与数据面、存储、复制、顺序、延迟、事务消息与重试。 | 03-RocketMQ(分布式消息队列)产品分册 |
| RabbitMQ(消息队列)图 | 交换机路由、发布确认、消费确认、仲裁队列、流控与死信。 | 04-RabbitMQ(消息队列)产品分册 |
| 可靠性图 | 事件产生、结果未知、重复投递、幂等、顺序、重试、死信与补偿闭环。 | 05-可靠性语义、幂等、顺序与重试 |
| 排障图 | 容量因果、积压恢复、热点、故障证据链、止血和复盘。 | 06-容量、性能、积压与线上排障 |
| 项目方案图 | 六类项目从权威事实、异步边界到幂等、补偿和对账的闭环。 | 07-项目案例 |
| 追问树 | 产品选择、可靠性、支付库存、IoT(物联网)报警与积压事故追问树。 | 08-综合面试题库 |
| 项目案例 | 主案例入口 | 建议联读 |
|---|---|---|
| 异步导出与大任务拆分 | 07-项目案例 | 01-价值与分治、06-容量与排障 |
| WMS(仓储管理系统)库存防超卖 | 07-项目案例 | 05-可靠性、06-容量与排障 |
| 支付资金一致性 | 07-项目案例 | 05-可靠性、08-综合面试题库 |
| 跨境物流轨迹 | 07-项目案例 | 02-Kafka(分布式日志消息系统)产品分册、05-可靠性 |
| Runner(执行器)调度 | 07-项目案例 | 05-可靠性、06-容量与排障 |
| IoT(物联网)报警风暴治理 | 07-项目案例 | 01-价值与分治、06-容量与排障 |
6. 完成红线
00至08的入口链接必须真实可达,版本结论、图形和项目案例都能回查到对应分册。- 产品回答必须先声明 Kafka(分布式日志消息系统)、RocketMQ(分布式消息队列)或 RabbitMQ(消息队列)的版本边界,不混用跨版本能力。
- 可靠性复习必须回到 05-可靠性语义、幂等、顺序与重试,容量与事故复习必须回到 06-容量、性能、积压与线上排障。
- 项目表达至少能覆盖一个一致性案例、一个容量案例和一个故障恢复案例,并能指出权威数据源、失败边界、兜底与验证证据。
- 不把“读完”当成完成;至少完成一轮顺序复习、一轮脱稿口述、一次项目串讲和一次积压事故复盘。
- 本入口始终只承担导航职责,不新增知识型三级标题、题库标记或长答案。
7. 如何复习与口述
- 建立地图:先读
00和01,只记录核心边界与仍说不清的问题。 - 选择产品线:按岗位先精读
02、03、04中最相关的一篇,再补另外两篇的选型差异。 - 闭合可靠性:用
05检查每个确认点能证明什么、失败后如何收敛;不要只背产品配置。 - 练习数据题:用
06口算积压、存储和恢复时间,再按“影响范围 → 止血 → 证据 → 根因 → 恢复 → 复盘”复述事故。 - 绑定简历:从
07选择 WMS(仓储管理系统)库存、支付、跨境物流、Runner(执行器)或 IoT(物联网)案例,按“背景 → 约束 → 方案 → 风险 → 兜底 → 观测 → 结果”完成三至五分钟口述。 - 接受追问:最后进入
08,先脱稿回答,再沿链接回查薄弱分册;入口本身不作为答案来源。
