- 基础模型:生产者发消息 → MQ 接收并存储 → 消费者获取消息
- 持久化:消息不能只放内存 → 顺序追加日志,保证重启后还能恢复
- 可靠发送:生产者不知道 MQ 是否收到 → ACK + 失败重试
- 可靠消费:不能消息刚发出去就认为成功 → 消费者处理成功后 ACK
- 消费进度:消费者重启后要知道从哪里继续 → 记录 Offset
- 消费模式:要支持不同业务方式 → 点对点 / 发布订阅
- 消费者组:既要横向扩消费者,又要支持多个业务订阅 → 组内分摊,同一消息不同组可分别消费
- Push / Pull:要平衡实时性和消费者承载能力 → 通常 Pull / 长轮询,让消费者控制消费速度
- Partition:单机吞吐不够 → Topic 拆多个分区,通过 Key Hash / 轮询等方式分配,实现并行处理和水平扩容
- 失败处理:消息一直处理失败不能无限卡住 → 重试 + 死信队列
- 高可用:节点挂了消息不能没了 → 多副本 + Leader/Follower 等复制机制
先能收、能存、能发 → 存储要持久化 → 生产端要可靠 ACK → 消费端要 ACK + 重试 → 要记录 Offset → 要支持不同消费关系 → 用 Consumer Group 扩消费者 → 推拉模式做权衡 → Partition 提升吞吐和水平扩展 → 最后再考虑副本和高可用。