ESB文档库 ESB文档库
00 概述
01 产品安装指南
02 快速入门指南
03 ESB Studio使用指南
04 企业服务总线使用指南
05 高级配置指南
06 接口服务说明
07 升级&数据迁移指南
08 FAQ
无

spring cloud gateway 自带令牌桶限流,限流生效时返回状态码“429”。

插件参数说明:

令牌桶每秒填充速率(redis-rate-limiter.replenishRate):是你允许用户每秒执行多少请求,而不丢弃任何请求。这是令牌桶的填充速率。 令牌桶可以容纳的令牌数量(redis-rate-limiter.burstCapacity):是允许用户在一秒钟内执行的最大请求数。这是令牌桶可以保存的令牌数。将此值设置为零将阻止所有请求。 请求从存储桶中获取的令牌数(redis-rate-limiter.requestedTokens):是每个请求消耗多少个令。

稳定速率是通过在replenishRate(令牌桶每秒填充速率) 和 burstCapacity(令牌桶可以容纳的令牌数量)中设置相同的值来实现的。 可通过设置burstCapacity高于replenishRate来允许临时突发流浪。在这种情况下,限流器需要在两次突发之间留出一段时间(根据replenishRate),因为连续两次突发将导致请求丢失 (HTTP 429 - Too Many Requests).。

要限制每秒一个请求,可以将replenishRate设置为目标请求数,requestedTokens设置目标的时间秒数,burstCapacity为replenishRate * requestedTokens。如:设置replenishRate=1,requestedTokens=60 和 burstCapacity=60,就是限制每分钟1个请求。

限流生效时效果如下:

← 5.14.12 灰度(Grayscale) 5.14.14 接口调用次数(ApiInvoke) →