连载中 19/20

事故集锦:十个真实故障复盘

2026-07-16 · 3921 阅读 · 0 评论 · 0 赞

案例一、二:超时与重试的连环坑

事故一:没有超时的等待——某服务调用风控接口没设超时,风控侧流量突增 RT 从 200ms 涨到 30s,Tomcat 线程 10 分钟内耗尽,整个服务连登录都挂了。复盘:任何跨网络调用必须有超时(第 15 篇),风控这类非核心依赖还要做舱壁隔离(第 14 篇)与熔断(第 10 篇),三件武器一件都不能少。

事故二:恢复即雪崩——缓存服务重启,首页接口超时重试 3 次,恢复瞬间重试流量是常态 4 倍,二次打挂,反复三轮回不来。复盘:指数退避 + 抖动(第 16 篇)必须配上重试预算,熔断 OPEN 期间禁止重试;用户侧配「稍后自动重试」的友好页,别让用户手动 F5 当重试器。

案例三、四:资源没有隔离

事故三:一个慢依赖拖垮全站——所有下游调用共享 Tomcat 线程池,推荐服务慢性病 RT 3s,把线程一点点占光,下单陪葬。复盘:核心下游独立线程池(第 14 篇舱壁模式),边缘下游信号量限制 + 熔断,Tomcat 主池只留给核心链路。

事故四:报表拖垮交易——运营报表 SQL 与交易共库共连接池,一次全表扫描把 DB 连接占满,交易写入排队。复盘:核心库与边缘库分实例、连接池分舱(第 14 篇),报表查询限流并只读从库。

案例五、六:熔断参数的教训

事故五:凌晨的误跳闸——错误率阈值 50% 但没配最小请求数,凌晨窗口里 2 个请求挂 1 个,熔断 30 秒,拨测告警半夜连响三次把值班同学吵醒。复盘:minRequestAmount(第 11 篇)不是可选参数,是防误诊的护栏。

事故六:横跳的半开——半开放行 1 个探测请求,撞上网络抖动立即打回 OPEN,熔断—半开—熔断横跳一小时,恢复期被拉长十倍。复盘:探测请求数 3~5 个、连续成功才闭合(第 11 篇),休眠时长按下游真实恢复时间定。

案例七、八:降级与开关

事故七:陈年缓存——详情服务降级返回缓存兜底,降级持续 20 分钟,用户看到的是三天前的价格,投诉比故障本身还多。复盘:兜底数据要有保鲜机制(第 13 篇),静态榜单定时刷新;价格类数据宁可显示「暂时无法展示」,也不能错。

事故八:开关在哪台机器——故障现场要关掉推荐功能,发现降级开关配在配置中心,而配置中心自己正故障,改不了。复盘:救火用的开关要有本地兜底配置(第 13 篇),每个开关都要写明「最后一公里」的手动操作路径。

案例九、十:流量与预案

事故九:热 key 打爆分片——大促爆款商品详情成为热 key,单个 Redis 分片被打满,同分片的其他 key 全部超时。复盘:热点识别 + 本地缓存挡在最前(限流篇的多级思想),key 加随机后缀打散;这类隐患压测时就该暴露(第 18 篇)。

事故十:一次毫发无损的故障——某月支付渠道抖动,熔断 5 秒内跳闸,降级自动切到备用渠道,用户只感知延迟略增,无工单无投诉。复盘的关键不是技术,是这个预案当月刚演练过(第 13、18 篇):谁按开关、走什么检查单、怎么恢复,全是肌肉记忆。

复盘的方法

每次故障,无论大小,回答三个问题:为什么没提前发现——监控有没有覆盖这个指标;为什么没自动止损——哪一层机制缺位或参数不对;为什么还需要人在场——哪些手动动作可以变预案、再变自动化。事故是比压测更贵的演练,别人交的学费,要记进自己的手册。

十个案例对应十件武器,机制全部讲完——最后一篇收官,把整个稳定性体系拼成一张全景图。

503

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

#事故复盘#案例#故障分析#稳定性#预案演练

评论 (0)

相关推荐

连载中 12/20

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

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

#jstack#jmap#jstat#jcmd#排查工具
2026-09-16 · 5 阅读 · 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 赞