2026-06-09 / C# / .NET Core
HttpClientFactory 与 Polly:让外部 HTTP 调用更稳
外部 HTTP 调用的稳定性来自客户端生命周期、超时、重试、熔断和降级的组合设计。
.NETASP.NET Core
HttpClientFactory 与 Polly:让外部 HTTP 调用更稳
外部 HTTP 调用不稳定是常态:网络抖动、DNS 变化、对方限流、偶发 5xx 都会发生。稳定性不能靠裸重试解决。
调用链路
sequenceDiagram
participant H as Handler
participant C as Typed HttpClient
participant P as Polly Policy
participant API as External API
H->>C: 调用第三方服务
C->>P: 应用 Timeout / Retry / CircuitBreaker
P->>API: HTTP Request
API-->>P: 2xx / 5xx / Timeout
P-->>C: 成功 / 降级 / 快速失败
C-->>H: 业务结果
实际工程场景
HttpClientFactory 管理 Handler 生命周期和连接复用,Polly 管理失败策略。二者结合后,调用方可以获得更明确的超时、重试和熔断行为。
常见误区
- 所有错误都重试。
- 没有超时,只加重试。
- 非幂等请求也盲目重试。
- 熔断后没有降级路径。
最佳实践
- 先设置明确超时。
- 只对瞬时故障重试。
- 重试次数少而可观测。
- 熔断、降级和告警一起设计。