Table of Contents

弹性策略

builder.Services.AddLedonResilience();   // 接管全部 HttpClient(默认)

基于 Polly 的 HTTP 韧性管道,经 ConfigureHttpClientDefaults 默认对全部 IHttpClientFactory 客户端生效——命名客户端、类型化客户端都无需逐个配置。

默认策略

策略 默认行为
重试 5xx / 429 / 网络故障,指数退避 + 抖动,最多 3 次
尝试超时 单次尝试 30 秒
熔断 最小采样 5 次中失败比例 ≥ 50% 时打开,持续 30 秒
builder.Services.AddLedonResilience(o =>
{
    o.MaxRetryAttempts = 5;
    o.BaseDelay = TimeSpan.FromSeconds(1);
    o.AttemptTimeout = TimeSpan.FromSeconds(10);
    o.BreakDuration = TimeSpan.FromSeconds(15);
});

MaxRetryAttempts <= 0 时跳过重试策略(只留超时与熔断)。

适用范围

默认 ApplyToAllHttpClients = true。只想对特定客户端生效时置 false,自行用 AddHttpClient(...).AddStandardResilienceHandler() 或框架的重试处理器配置。

边界

策略只覆盖出站 HTTP(HttpClient)。数据库、Redis 等依赖的韧性由各自驱动的连接池/重试机制负责,不在此管道内。重试对非幂等请求(POST 创建)默认同样生效——下游不保证幂等时,把写操作改造成幂等(幂等键)或对该客户端关闭重试。