已采纳
回答正文
回复
讨论正文
该问题的正文、回答与讨论。
背景
热榜那篇《超时与重试》(id=23)讲清了「超时不是配置项,是容量规划的一部分」,以及「上游 200ms 超时 + 下游 P99 180ms」这种贴线配置的坑。社区也讨论过自适应限流 vs 固定 QPS(id=705)、连接池上限(id=18)。但有一个更具体的问题没被正面问过:当下游 RT 存在周期性抖动(不是异常、是常态),上游的超时到底该设成什么数字?
我 8 年里踩过三次「超时设错了」的事故,每次根因都不是 bug,而是超时和下游 RT 分布的匹配关系没想清楚。想借社区之力把这件事聊透。
现象
一个聚合网关(Java 17,Netty + Reactor),3000 QPS,扇出到 3 个下游:
业务约束:风控结果必须等(不能降级、不能跳过),但订单/库存可以容忍 500ms 内返回。
三种做法的实测结果:
已尝试的排查与结论
期望得到的答案形态
想听具体的、带数字的实践,别只讲原则:
期待带数字的回答(QPS、P99、超时值、错误率、并发堆积峰值),空谈方法论的咱们可以单独聊。