You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为StandardResilienceHandler配置请求速率限制器?

问题描述

我正在开发对接外部HTTP服务的应用,需要对该服务的出站请求做速率限制。理想状态下,我想借助StandardResilienceHandler预设的最佳弹性实践配置来实现,当前的配置代码如下:

services.AddHttpClient<ExternalServiceGateway>()
    .AddStandardResilienceHandler();

但已知目标外部服务的速率限制是120请求/秒,我希望给出站请求应用符合该规则的速率限制策略。我已经能通过单独配置ResiliencePipeline实现类似逻辑,代码示例如下:

var pipeline = new ResiliencePipelineBuilder()
    .AddRetry(new RetryStrategyOptions
    {
        ShouldHandle = new PredicateBuilder().Handle<RateLimiterRejectedException>(),
        Delay = TimeSpan.FromSeconds(1),
        MaxRetryAttempts = 5,
        BackoffType = DelayBackoffType.Exponential,
        UseJitter = true
    })
    .AddRateLimiter(new FixedWindowRateLimiter(new FixedWindowRateLimiterOptions()
    {
       PermitLimit = 2,
       Window = TimeSpan.FromSeconds(1)
    }))
    .Build();

想请教是否有可行的方法,把这个自定义的速率限制(包含重试逻辑)策略和AddStandardResilienceHandler()的配置结合起来?

更新:问题/解决方案示例代码

我已经发布了用于测试该问题及对应解决方案的最小示例项目。


内容的提问来源于stack exchange,提问作者Daan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:03:11