连载中 20/20

收官复盘:一张消息队列作战地图

2026-08-09 · 1778 阅读 · 0 评论 · 0 赞

收官,但地图要常翻

从那个 800ms 的下单接口开始,20 篇写完:为什么用、代价、选型、模型、不丢、不重、有序、延迟、事务、重试、死信、积压、Kafka、RocketMQ、容灾、监控、场景、陷阱。最后一篇不添新知识,只做一件事——把散落的内容拼成一张出事时能直接翻的作战地图。

作战地图:症状 → 篇目 → 第一动作

症状第一动作复习篇目
接口慢,下游全串在链路上分清核心/附属链路,考虑异步化第 1、2 篇
消息凭空丢失按三段论排查:发送确认、刷盘复制、ACK 时机第 5、6 篇
重复消费,业务翻倍上幂等:唯一键/去重表/状态机第 7 篇
数据对不上,先后错乱key 路由加分区内有序,或状态机免疫第 8 篇
订单该关没关延迟消息三保险 + 对账第 9、18 篇
库和消息对不齐事务消息或本地消息表,回查查库第 10 篇
重试停不下来查重试上限、死信告警与人工 SOP第 11 篇
积压疯涨先诊断病因再止血,深的上转储第 12 篇
Kafka 消费组频繁停摆查 GC 与 poll 间隔,上静态成员第 14 篇
发送/消费全面变慢查大消息与磁盘水位,看三看板第 13、17 篇
机房级故障按容灾预案切换,防脑裂先确认第 16 篇

按场景走的阅读路径

  • 入门线:第 1 → 2 → 3 → 4 篇,为什么用、代价、选型、模型;
  • 可靠性线:第 5 → 6 → 7 → 8 篇,不丢、不重、有序三连;
  • 进阶特性线:第 9 → 10 篇,延迟与事务;
  • 运维线:第 11 → 12 → 17 篇,重试死信、积压、监控;
  • MQ 深入线:第 13 → 14 → 15 篇,Kafka 两篇加 RocketMQ 一篇;
  • 实战线:第 16 → 18 → 19 篇,容灾、场景、陷阱。

三条心法

  • 先分清该不该,再想怎么用:强一致留同步链路,最终一致才交给 MQ。第 2 篇的四问清单,上队列前过一遍;
  • 不丢靠层层确认,不重靠业务幂等:两个承诺天然冲突,MQ 负责不丢,你负责幂等。去重表和状态机不是可选项;
  • MQ 是组合拳里的一拳:延迟消息配状态机,削峰配预扣库存,同步配对账。单靠 MQ 解不了业务题。

上线检查清单

  • 发送禁用 oneway,异步回调处理异常,核心链路有本地消息表或事务消息;
  • Broker:同步刷盘 + 同步复制(或 acks=all 加 min.insync.replicas 大于等于 2);
  • 消费:手动提交,先处理后 ACK,重试有上限,死信有告警;
  • 幂等:去重表与业务同事务,或状态机兜底;
  • 顺序:按需开分区有序,毒消息预案齐备;
  • 监控:三看板齐,lag 按追平时间告警;
  • 容量:消费能力为峰值两倍,队列数预留,磁盘水位低于 80%;
  • 容灾:按业务损失定价的容灾档位,切换演练按季度;
  • 对账:生产消费两端业务单号每日核对;
  • 值班手册:每条告警都写着第一动作。

Redis 缓存实战 16 篇、MySQL 实战 22 篇、消息队列实战 20 篇——咖啡馆后山的三座地标全部落成。下个系列候选还剩两块地:分布式 ID(MySQL 系列第 20 篇挖的坑)和 Elasticsearch 检索实战(本系列第 18 篇数据同步里露过脸)。选哪块,你说了算——咖啡豆照旧管够。

咖啡凉了,记得趁热喝。

☕
503

10 年全栈工程师 · 503咖啡馆主理人

#消息队列#复盘#系列收官#检查清单#作战地图

评论 (0)

热门推荐

连载中 11/22

主从搭建实操:从零配出一主两从

光讲原理不过瘾?手把手搭一主两从:my.cnf 六个参数、复制账号、GTID、CHANGE REPLICATION SOURCE TO、SHOW REPLICA STATUS 验收,附翻车排查清单。

#MySQL#主从复制#GTID#主从搭建#高可用
2026-05-07 · 10101 阅读 · 0 评论 · 0 赞
连载中 16/22

连接池:HikariCP 参数与连接风暴

连接池不是越大越好:8 核机器配 1000 连接反而更慢的数学原理,HikariCP 四个必调参数,maxLifetime 与 wait_timeout 的隐形陷阱。

#MySQL#连接池#HikariCP#maxLifetime#连接风暴
2026-05-10 · 9872 阅读 · 0 评论 · 0 赞
连载中 4/16

缓存穿透:恶意 ID 打穿 MySQL 的四道防线

请求的数据在缓存和数据库里都不存在时,缓存形同虚设。聊聊参数校验、空值缓存、布隆过滤器、限流熔断四道防线的原理与组合打法。

#Redis#缓存穿透#布隆过滤器#高可用
2026-05-16 · 9293 阅读 · 21 评论 · 287 赞