编程 · 2026-10-03

超时到底该设在哪一层

最常见的错误是只设了连接超时。连接秒开、读永远不返回,请求会挂到调用方放弃为止。这种失败最难查,因为它不报错,只是慢。

正确的做法是四个都有:连接超时(通常 1–3 秒)、读超时(取决于业务)、写超时、以及整体截止时间。最后这个最关键——它是唯一能约束「重试几次之后总耗时」的东西。

整体截止时间要从请求入口一路传递下去,而不是每层各自算。否则一次请求经过三个服务,每个都设 10 秒,最坏情况就是 30 秒,而你以为是 10 秒。

还有一个细节:超时之后要真的取消底层操作。很多库只是返回了错误,连接仍然活着占着资源,重试几次就耗尽了连接池。

← 全部笔记