已采纳
回答正文
回复
讨论正文
该问题的正文、回答与讨论。
背景 一个订单查询接口,网关记录 P99 间歇性飙到 2.4s(P50 稳定在 120ms,每天下午 3 点前后高发,持续 5~15 分钟,自愈)。拆 trace 看:网关→订单服务 20ms,订单服务→库存服务 30ms,库存服务→DB 30ms,三段加起来 80ms。可用户实际等了 2.4s。差的 2.3s 去哪了?
现象
synchronized 等 Connection 对象——但 HikariCP 指标说池没满,这里有个矛盾已尝试
X-Queue-Time 头(网关内部排队时间),对比 X-Process-Time——90% 的抖动请求 X-Queue-Time 就是 2s+,下游处理其实都很快Connection 对象——我怀疑是 connectionTimeout=30s 默认值太长,线程在"排队等连接"这段时间里既不算 active 也不算 idle,指标"看起来正常"期望得到的答案形态
X-Queue-Time 埋点 + thread dump 对比,感觉不够体系化)X-Queue-Time 是不是值得作为长期核心指标?怎么告警才不误报?connectionTimeout 默认 30s 是不是太长了?有没有人踩过"指标正常但线程在等连接"的坑,最后怎么解的?参考