主题
消息队列 · 必学内容图
A. MQ 基础与选型
A1. 为什么需要 MQ:异步、解耦、削峰及引入代价
A2. 消息模型:Queue(P2P)vs Pub/Sub
A3. 三大/四大 MQ 选型对比:Kafka / RabbitMQ / RocketMQ / Pulsar(吞吐、延迟、可靠性、功能、运维)
A4. 容量规划与分区数估算
B. Kafka 原理
B1. 核心概念:Topic / Partition / Replica / Segment / offset
B2. 生产者原理:累加器、Sender、分区器、acks、重试
B3. 消费者原理:poll 模型、位移提交、Rebalance(JoinGroup/SyncGroup)
B4. 分区分配策略:Range / Sticky / CooperativeSticky
B5. 存储原理:分段日志、稀疏索引、页缓存、日志清理(delete/compact)
B6. Controller 与 ZooKeeper / KRaft 元数据管理
B7. Kafka 高性能:顺序写、零拷贝 sendfile、批处理、压缩
C. Kafka 可靠性与语义
C1. ISR / HW / LEO、acks 机制与 min.insync.replicas
C2. 消息丢失全链路场景(生产端/broker/消费端)
C3. 幂等生产者与 Exactly-Once 语义(事务、read-process-write)
C4. 消息顺序:分区内有序、跨分区方案、乱序事故
C5. Rebalance 触发条件、危害与优化
C6. 生产事故排查:发送超时、消费延迟、堆积
D. RabbitMQ
D1. AMQP 模型:Exchange / Binding / Queue,四种 Exchange 类型
D2. 可靠投递:Confirm、Return、手动 ack、prefetch/QoS
D3. 集群与高可用:普通集群 / 镜像队列 / Quorum Queue
D4. TTL、DLX 死信与延迟队列实现
D5. 消息积压与流控(memory/disk alarm)
E. RocketMQ
E1. 架构:NameServer / Broker 主从 / Producer / Consumer
E2. 存储:CommitLog / ConsumeQueue / IndexFile、同步刷盘 vs 异步刷盘、同步复制 vs 异步复制
E3. 事务消息:半消息、本地事务、回查
E4. 顺序消息:MessageQueueSelector、队列锁
E5. 延时消息:18 固定级别 vs 5.x 任意延时
E6. 消息过滤:Tag 与 SQL92
E7. 高可用演进:主从切换、DLedger / 新版 Controller
E8. 消息轨迹、重试与死信队列、消费幂等
F. 通用问题与运维
F2. 消息堆积治理(三 MQ 各自手段)
F3. 延迟消息方案对比(TTL+DLX / RocketMQ / Redis ZSet)
F4. 死信队列与消息回放
F5. 削峰填谷与消费速率控制、背压
F6. 跨集群复制与容灾:MM2、双活、防环、offset 同步
F7. 消息顺序的通用保证手段
F8. MQ 解耦边界与过度使用
F9. 流处理:Kafka Streams(及与 Flink 定位差异)
F10. Pulsar:存算分离、BookKeeper、订阅模式、分层存储