Files
cs-note/hhs/MQ/README.md
T
2026-05-24 20:51:06 +08:00

15 KiB
Raw Blame History

tags, create time
tags create time
MQ
消息队列
索引
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 架构实战四个模块。
  • 每篇笔记都包含思考题,建议先独立思考再看解答。

关联笔记