Skip to content
bitzorcas
EN

Concept

HTTP 弹性

计划中的 HTTP 弹性 — 基于 Polly 的重试、熔断器和超时策略,用于出站 HTTP 调用。

Last updated

BitzOrcas 尚未包含 HTTP 弹性策略(基于 Polly 的重试、熔断器或超时)用于出站 HTTP 调用。Webhook 投递系统有自己的重试逻辑,但没有共享的弹性管道。

当前状态

出站 HTTP 调用直接使用 HttpClient,无弹性策略:

// Webhook 投递有自己的重试逻辑
public class DefaultWebhookHttpClient : IWebhookHttpClient
{
// 直接使用 HttpClient,在 WebhookDeliveryService 中自定义重试
}

外部请求日志

ExternalRequestLoggingHandler 为出站 HTTP 调用提供审计日志:

// 为 HTTP 客户端请求注册 — 日志记录方法、URL、状态、持续时间

计划实现

策略描述
重试瞬态故障的指数退避(5xx、超时)
熔断器连续 N 次失败后断路
超时每请求超时带取消
限流器每下游限流

目标配置

{
"HttpResilience": {
"Default": {
"MaxRetries": 3,
"BackoffBase": "00:00:02",
"CircuitBreakerFailureThreshold": 5,
"Timeout": "00:00:30"
}
}
}

Webhook 重试(已有)

Webhook 投递系统有自己的 WebhookRetryPolicy

public class WebhookRetryPolicy
{
public int MaxRetries { get; } = 5;
public TimeSpan InitialDelay { get; } = TimeSpan.FromSeconds(5);
public double BackoffMultiplier { get; } = 2.0;
}

这可作为更广泛弹性实现的参考模式。

另见