主题
接口限流拦截器
WARNING
通过令牌桶方式限流,支持集群限流。
限流方式
- 全局限流
- 按令牌限流
- 按ip限流
- 按商户限流
- 按接口路径限流
配置
参数说明
enabled
:是否启用拦截器,默认不启用false
rules
:规则列表,可以配置多个type
:限流类型,可以配置多个(组合限流),AUTHORIZATION
按令牌,IP
按ip限流,MERCHANT
按商户,PATH
按接口地址,ALL
全部urls
:需要拦截的地址,配置集合,如果有多个url地址,那么这些url地址全部走一个限流replenish-rate
:每秒产生的令牌数量,默认1
burst-capacity
:令牌桶总容量,默认1
requested-tokens
:每个请求消耗令牌数量,默认1
restore
^1.4.0:是否允许重置令牌数量,重置后,可以继续访问,需要和验证码拦截器结合使用(例如:当用户访问被限流后,用户可以通过验证码方式,验证通过后,继续访问页面),默认不启用false
示例1
/demo/**
规则下所有接口,每秒允许请求1次
yaml
wueasy:
gateway:
filter:
request-rate-limiter:
enabled: true
rules:
- type:
- ALL
urls:
- /demo/**
replenish-rate: 1
burst-capacity: 1
示例2
/demo/**
规则下所有接口,每个接口每秒允许请求1次
yaml
wueasy:
gateway:
filter:
request-rate-limiter:
enabled: true
rules:
- type:
- PATH
urls:
- /demo/**
replenish-rate: 1
burst-capacity: 1
示例3
/demo/**
规则下所有接口,每个接口和token每秒允许请求1次
yaml
wueasy:
gateway:
filter:
request-rate-limiter:
enabled: true
rules:
- type:
- PATH
- AUTHORIZATION
urls:
- /demo/**
replenish-rate: 1
burst-capacity: 1
示例4
/demo/**
规则下所有接口,每个接口和token每分钟允许请求1次
yaml
wueasy:
gateway:
filter:
request-rate-limiter:
enabled: true
rules:
- type:
- PATH
- AUTHORIZATION
urls:
- /demo/**
replenish-rate: 1
burst-capacity: 60
requested-tokens: 60