超时类文章很多,但把「网关整链 / 业务拦截器 / 下游出图完成」三条时间线对照成固定排障法的并不多。异步导出状态机本身不新,和「禁止同步重建以免网关超时」绑在一起,才是可抄的纪律。
三份耗时对照
约定固定读三类日志:
- 网关 access log:
startTime、整链耗时(毫秒) - 业务服务访问日志:单请求耗时
- 出图进程完成日志:耗时 + 成功/失败张数
读法:
- 两线接近 → 瓶颈在业务或更下游
- 业务明显短、网关很长 → 查网关链或网络,而不是先改业务算法
没有这三份对照,就没有资格改代码。
长导出的状态机
大表导出不要指望同步扛完:
- 异步生成 + 状态:未生成 / 等待 / 导出中 / 失败 / 就绪
- 文件落盘 + 状态通知;关页面不取消后端任务
- 非默认配置时先「叠加确保最新 + 进度」,禁止同步重算拖垮网关
可复用的落点
- 超时结论必须能回答:慢在哪一层。
- 「前端转圈」与「HTTP 已超时」可以同时为真。
- 大包要防:同步重建、整包进堆、半截文件。
排障先对齐时间线,再谈优化;否则你改的可能是错的那一层。