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 管理失败策略。二者结合后,调用方可以获得更明确的超时、重试和熔断行为。

常见误区

  • 所有错误都重试。
  • 没有超时,只加重试。
  • 非幂等请求也盲目重试。
  • 熔断后没有降级路径。

最佳实践

  • 先设置明确超时。
  • 只对瞬时故障重试。
  • 重试次数少而可观测。
  • 熔断、降级和告警一起设计。
HttpClientFactory 与 Polly:让外部 HTTP 调用更稳 | Remi Resume