故障演练只做了断网和杀进程,真实故障是下游变慢而不是挂掉,超时与重试链路从没被验证,真出事时重试把雪崩放大了三倍。
一开始怀疑是「重试与熔断的组合行为没有覆盖」,查了一圈,方向不对。
把日志和配置对完,能解释这个现象的基本就这几处。演练场景只有宕机,没有慢响应。另一种情况是超时配置从未在演练中生效过。
另外,演练结果没有量化指标,只有“看起来正常”。
上来先列出所有依赖及其超时配置
python -c "import json;print(json.load(open('deps.json')))"
接着用注入工具给依赖加 3 秒延迟
python chaos.py --target downstream --mode delay --ms 3000 --duration 300
然后观察重试次数与错误率曲线
python watch.py --metric retry_total,err_rate --window 5m
末了把超时与重试参数调到不放大后复盘
python drill_report.py --id d20261111 --out report.md
改完先别撤,确认这几项。注入 3 秒延迟时错误率峰值 4%,重试放大量控制在 1.2 倍,超时链路按预期在 2 秒内快速失败。
提醒一点。真正的故障多数是变慢而不是挂掉,演练必须包含延迟注入;只看“系统还活着”没有意义,要有重试放大倍数这类量化指标。报错文案容易误导,真正的原因往往在相邻那一层的日志里。
