15 KiB
15 KiB
tags, create time
| tags | create time | |||
|---|---|---|---|---|
|
2026-05-24 19:52 |
消息队列(Message Queue)
概述
消息队列是分布式系统中最核心的中间件之一,用于解耦、削峰、异步通信。本目录从基础概念出发,逐层深入到协议标准、存储引擎、设计模式、流处理集成、消息追踪、K8s 部署、测试策略、安全运维与架构实战,构建完整的 MQ 知识体系。
知识地图
graph TD
A["消息队列"] --> B["基础概念"]
A --> C["消息模型"]
A --> D["协议与标准"]
A --> E["存储引擎"]
A --> F["可靠性保障"]
A --> G["高级特性"]
A --> H["主流 MQ 对比"]
A --> I["消息设计模式"]
A --> J["流处理与事件驱动"]
A --> K["监控与运维"]
A --> L["安全与多租户"]
A --> M["架构与实战"]
B --> B1["什么是 MQ"]
B --> B2["核心术语"]
B --> B3["适用场景与选型原则"]
C --> C1["队列模型 vs 发布订阅模型"]
C --> C2["Consumer Group 与 Rebalance"]
C --> C3["Push vs Pull"]
D --> D1["AMQP 协议"]
D --> D2["MQTT 协议"]
D --> D3["JMS 与 OpenMessaging"]
E --> E1["Kafka 存储设计"]
E --> E2["RocketMQ CommitLog"]
E --> E3["RabbitMQ 消息存储"]
F --> F1["消息确认与持久化"]
F --> F2["Exactly-Once 语义"]
F --> F3["消息幂等性"]
F --> F4["顺序性保障"]
F --> F5["死信队列与消息回溯"]
G --> G1["延迟消息与定时消息"]
G --> G2["事务消息"]
G --> G3["消息过滤与路由"]
G --> G4["Schema 管理与演进"]
G --> G5["消息压缩与批处理"]
H --> H1["Kafka"]
H --> H2["RabbitMQ"]
H --> H3["RocketMQ"]
H --> H4["Pulsar"]
H --> H5["NATS / NSQ / Redis Streams"]
H --> H6["选型对比"]
I --> I1["Competing Consumers"]
I --> I2["CQRS 与 Event Sourcing"]
I --> I3["Claim Check 与消息瘦身"]
I --> I4["背压与流控"]
I --> I5["请求-回复模式"]
J --> J1["Kafka Streams"]
J --> J2["流处理框架集成"]
J --> J3["事件驱动架构"]
J --> J4["MQ 与 CDC"]
K --> K1["监控指标与告警"]
K --> K2["消费积压治理"]
K --> K3["消息轨迹与链路追踪"]
K --> K4["容器化与 K8s 部署"]
K --> K5["性能调优"]
K --> K6["测试策略"]
L --> L1["认证与授权"]
L --> L2["加密与审计"]
M --> M1["高可用架构"]
M --> M2["跨集群复制与容灾"]
M --> M3["分布式事务实践"]
M --> M4["MQ 与微服务"]
M --> M5["客户端 SDK 最佳实践"]
M --> M6["客户端连接管理"]
M --> M7["MQ 设计与实现"]
style A fill:#4A90D9,color:#fff
style B fill:#6EC1E0,color:#fff
style C fill:#6EC1E0,color:#fff
style D fill:#6EC1E0,color:#fff
style E fill:#F5A623,color:#fff
style F fill:#F5A623,color:#fff
style G fill:#F5A623,color:#fff
style H fill:#D0021B,color:#fff
style I fill:#D0021B,color:#fff
style J fill:#D0021B,color:#fff
style K fill:#D0021B,color:#fff
style L fill:#D0021B,color:#fff
style M fill:#D0021B,color:#fff
目录
一、基础概念
由浅入深,先搞清楚 MQ 是什么、为什么需要它。
| 序号 | 主题 | 说明 |
|---|---|---|
| 1 | [[01-基础概念/1-MQ-基础概念 | MQ 基础概念]] |
| 2 | [[01-基础概念/2-MQ-适用场景与选型原则 | MQ 适用场景与选型原则]] |
二、消息模型
理解消息如何从生产者流向消费者。
| 序号 | 主题 | 说明 |
|---|---|---|
| 3 | [[02-消息模型/3-MQ-消息模型 | MQ 消息模型]] |
三、协议与标准
了解底层通信协议,才能理解不同 MQ 的设计取舍。
| 序号 | 主题 | 说明 |
|---|---|---|
| 4 | [[03-协议与标准/4-MQ-消息协议总览 | MQ 消息协议总览]] |
| 5 | [[03-协议与标准/5-AMQP-协议 | AMQP 协议]] |
| 6 | [[03-协议与标准/6-MQTT-协议 | MQTT 协议]] |
| 7 | [[03-协议与标准/7-JMS-与-OpenMessaging | JMS 与 OpenMessaging]] |
四、存储引擎
消息如何落地存储,决定了 MQ 的吞吐与可靠性上限。
| 序号 | 主题 | 说明 |
|---|---|---|
| 8 | [[04-存储引擎/8-MQ-存储引擎设计 | MQ 存储引擎设计]] |
| 9 | [[04-存储引擎/9-Kafka-存储设计 | Kafka 存储设计]] |
| 10 | [[04-存储引擎/10-RocketMQ-CommitLog | RocketMQ CommitLog]] |
| 11 | [[04-存储引擎/11-RabbitMQ-消息存储 | RabbitMQ 消息存储]] |
五、可靠性保障
消息不能丢、不能重复、最好还能保序——生产环境的核心诉求。
| 序号 | 主题 | 说明 |
|---|---|---|
| 12 | [[05-可靠性保障/12-MQ-消息确认与持久化 | MQ 消息确认与持久化]] |
| 13 | [[05-可靠性保障/13-MQ-Exactly-Once-语义 | MQ Exactly-Once 语义]] |
| 14 | [[05-可靠性保障/14-MQ-消息幂等性 | MQ 消息幂等性]] |
| 15 | [[05-可靠性保障/15-MQ-顺序性保障 | MQ 顺序性保障]] |
| 16 | [[05-可靠性保障/16-MQ-死信队列与消息回溯 | MQ 死信队列与消息回溯]] |
六、高级特性
MQ 在复杂业务场景下提供的进阶能力。
| 序号 | 主题 | 说明 |
|---|---|---|
| 17 | [[06-高级特性/17-MQ-延迟消息与定时消息 | MQ 延迟消息与定时消息]] |
| 18 | [[06-高级特性/18-MQ-事务消息 | MQ 事务消息]] |
| 19 | [[06-高级特性/19-MQ-消息过滤与路由 | MQ 消息过滤与路由]] |
| 20 | [[06-高级特性/20-MQ-Schema-管理与演进 | MQ Schema 管理与演进]] |
| 21 | [[06-高级特性/21-MQ-消息压缩与批处理 | MQ 消息压缩与批处理]] |
七、主流 MQ 对比
了解主流产品的设计差异,才能做出合理的技术选型。
| 序号 | 主题 | 说明 |
|---|---|---|
| 22 | [[07-主流MQ对比/22-Kafka | Kafka]] |
| 23 | [[07-主流MQ对比/23-RabbitMQ | RabbitMQ]] |
| 24 | [[07-主流MQ对比/24-RocketMQ | RocketMQ]] |
| 25 | [[07-主流MQ对比/25-Apache-Pulsar | Apache Pulsar]] |
| 26 | [[07-主流MQ对比/26-NATS-NSQ-Redis-Streams | NATS / NSQ / Redis Streams]] |
| 27 | [[07-主流MQ对比/27-MQ-选型对比 | MQ 选型对比]] |
八、消息设计模式
用好 MQ 不只是选产品,更需要掌握经过验证的架构模式。
| 序号 | 主题 | 说明 |
|---|---|---|
| 28 | [[08-消息设计模式/28-MQ-Competing-Consumers-模式 | MQ Competing Consumers 模式]] |
| 29 | [[08-消息设计模式/29-MQ-CQRS-与-Event-Sourcing | MQ CQRS 与 Event Sourcing]] |
| 30 | [[08-消息设计模式/30-MQ-Claim-Check-与消息瘦身 | MQ Claim Check 与消息瘦身]] |
| 31 | [[08-消息设计模式/31-MQ-背压与流控 | MQ 背压与流控]] |
| 32 | [[08-消息设计模式/32-MQ-请求-回复模式 | MQ 请求-回复模式]] |
九、流处理与事件驱动
MQ 不只是"传消息",更是实时数据流的基础设施。
| 序号 | 主题 | 说明 |
|---|---|---|
| 33 | [[09-流处理与事件驱动/33-MQ-与流处理 | MQ 与流处理]] |
| 34 | [[09-流处理与事件驱动/34-事件驱动架构-EDA | 事件驱动架构 EDA]] |
| 35 | [[09-流处理与事件驱动/35-MQ-与-CDC | MQ 与 CDC]] |
十、监控与运维
线上 MQ 出问题,如何快速发现、定位与修复。
| 序号 | 主题 | 说明 |
|---|---|---|
| 36 | [[10-监控与运维/36-MQ-监控指标与告警 | MQ 监控指标与告警]] |
| 37 | [[10-监控与运维/37-MQ-消费积压治理 | MQ 消费积压治理]] |
| 38 | [[10-监控与运维/38-MQ-消息轨迹与链路追踪 | MQ 消息轨迹与链路追踪]] |
| 39 | [[10-监控与运维/39-MQ-容器化与-K8s-部署 | MQ 容器化与 K8s 部署]] |
| 40 | [[10-监控与运维/40-MQ-性能调优 | MQ 性能调优]] |
| 41 | [[10-监控与运维/41-MQ-测试策略 | MQ 测试策略]] |
十一、安全与多租户
生产环境不可或缺的安全基础设施。
| 序号 | 主题 | 说明 |
|---|---|---|
| 42 | [[11-安全与多租户/42-MQ-认证与授权 | MQ 认证与授权]] |
| 43 | [[11-安全与多租户/43-MQ-加密与审计 | MQ 加密与审计]] |
十二、架构与实战
面向真实生产环境的问题与解决方案。
| 序号 | 主题 | 说明 |
|---|---|---|
| 44 | [[12-架构与实战/44-MQ-高可用架构 | MQ 高可用架构]] |
| 45 | [[12-架构与实战/45-MQ-跨集群复制与容灾 | MQ 跨集群复制与容灾]] |
| 46 | [[12-架构与实战/46-MQ-分布式事务实践 | MQ 分布式事务实践]] |
| 47 | [[12-架构与实战/47-MQ-与微服务 | MQ 与微服务]] |
| 48 | [[12-架构与实战/48-MQ-客户端-SDK-最佳实践 | MQ 客户端 SDK 最佳实践]] |
| 49 | [[12-架构与实战/49-MQ-客户端连接管理 | MQ 客户端连接管理]] |
| 50 | [[12-架构与实战/50-MQ-设计与实现 | MQ 设计与实现]] |
附录:云消息服务
了解云厂商托管方案,拓宽技术视野。
| 序号 | 主题 | 说明 |
|---|---|---|
| 51 | [[13-云消息服务/51-云消息服务 | 云消息服务]] |
学习路径建议
graph LR
S1["1 基础概念"] --> S2["2 消息模型"]
S2 --> S3["3 协议与标准"]
S3 --> S4["4 存储引擎"]
S4 --> S5["5 可靠性保障"]
S5 --> S6["6 高级特性"]
S6 --> S7["7 主流 MQ"]
S7 --> S8["8 设计模式"]
S8 --> S9["9 流处理与 EDA"]
S9 --> S10["10 监控运维"]
S10 --> S11["11 安全"]
S11 --> S12["12 架构实战"]
style S1 fill:#6EC1E0,color:#fff
style S2 fill:#6EC1E0,color:#fff
style S3 fill:#6EC1E0,color:#fff
style S4 fill:#F5A623,color:#fff
style S5 fill:#F5A623,color:#fff
style S6 fill:#F5A623,color:#fff
style S7 fill:#D0021B,color:#fff
style S8 fill:#D0021B,color:#fff
style S9 fill:#D0021B,color:#fff
style S10 fill:#D0021B,color:#fff
style S11 fill:#D0021B,color:#fff
style S12 fill:#D0021B,color:#fff
[!tip] 建议
- 初学者:按 1 → 2 → 3 → 5 顺序阅读,打牢基础后再进入存储引擎和高级特性。
- 有经验者:可直接跳到 7(主流 MQ)和 8(设计模式),以问题驱动学习。
- 架构师:重点关注 8 设计模式、9 流处理、10 监控运维、12 架构实战四个模块。
- 每篇笔记都包含思考题,建议先独立思考再看解答。