服务间调用链治理:OpenFeign 超时重试+熔断降级+请求日志追踪
引言 大促压测到第 8 分钟,订单服务调用库存服务开始超时。运维的第一反应是调超时时间——把 Feign 的 readTimeout 从 3 秒调到 10 秒,结果更糟了:原本 3 秒失败的请求变成 10 秒失败,线程池被占满,订单服务自己也被上游超时拖垮,整条链路雪崩。调回来想加重试,又发现库存扣减接口不是幂等的——重试一次多扣一遍库存。 这三种痛——超时设多少、重试敢不敢做、调用链断了怎么定位——是微服务调用链治理的核心三问。本文用 OpenFeign + Sentinel + OpenTelemetry 三件套一次配齐,附完整配置和踩坑清单。 一、超时与重试:不是设个数就完事 1.1 超时双层模型 客户端发请求 ──connectTimeout(2s)──→ 建连成功 ──readTimeout(5s)──→ 收到响应 │ │ │ 连不上 │ 连上了但响应慢 ▼ ▼ 连接超时(网络不可达/队列满) 读取超时(下游处理慢/GC/锁等待) 参数含义默认值调优方向 connectTimeout建立 TCP 连接的超时10s(太久)调到 1~2s(连不上就是连不上,别等) r....