连载中 20/20

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

2026-08-09 · 1773 阅读 · 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)

相关推荐

连载中 12/20

排查四件套:jstack、jmap、jstat、jcmd 的实战分工

jstack 看线程在干什么,jmap 看堆里装了什么,jstat 看运行时在变什么,jcmd 是统一入口。四把刀各管一段,配合着用没有查不动的现场。

#jstack#jmap#jstat#jcmd#排查工具
2026-09-16 · 3 阅读 · 0 评论 · 0 赞
连载中 11/20

GC 日志:把回收过程翻译成人话

一行 GC 日志里塞着七种信息:谁触发的、收了哪、停了多久、活了哪些。加上 -Xlog 配置,再加上日志分析工具,GC 不再是只能盯监控曲线的黑盒。

#GC日志#Xlog#日志分析#GC监控#Full GC排查
2026-09-16 · 13 阅读 · 0 评论 · 0 赞
连载中 10/20

ZGC:亚毫秒停顿是怎么炼成的

百 G 大堆停顿不到一毫秒,靠的是把搬家全部挪到并发阶段——着色指针让引用自带状态,读屏障让搬运中的对象依然可访问。代价是吞吐与内存,收益是停顿与堆大小解耦。

#ZGC#着色指针#读屏障#亚毫秒停顿#分代ZGC
2026-09-15 · 8 阅读 · 0 评论 · 0 赞