request_client_ip_limiter #
描述 #
request_client_ip_limiter 过滤器用来按照请求客户端 IP 来进行限速。
配置示例 #
配置示例如下:
flow:
- name: rate_limit_flow
filter:
- request_client_ip_limiter:
ip: #only limit for specify ips
- 127.0.0.1
max_requests: 256
# max_bytes: 102400 #100k
action: retry # retry or drop
# max_retry_times: 1000
# retry_interval: 500 #100ms
message: "your ip reached our limit"
上面的配置中,对 127.0.0.1
这个 IP 进行限速,允许的最大 qps 为 256
。
参数说明 #
名称 | 类型 | 说明 |
---|---|---|
ip | array | 设置哪些客户端 IP 会参与限速,不设置表示所有 IP 参与 |
interval | string | 评估限速的单位时间间隔,默认为 1s |
max_requests | int | 单位间隔内最大的请求次数限额 |
burst_requests | int | 单位间隔内极限允许的请求次数 |
max_bytes | int | 单位间隔内最大的请求流量限额 |
burst_bytes | int | 单位间隔内极限允许的流量限额 |
action | string | 触发限速之后的处理动作,分为 retry 和 drop 两种,默认为 retry |
status | string | 设置达到限速条件的返回状态码,默认 429 |
message | string | 设置达到限速条件的请求的拒绝返回消息 |
retry_delay_in_ms | int | 限速重试的时间间隔,单位毫秒,默认 10 ,即 10 毫秒 |
max_retry_times | int | 限速重试的最大重试次数,默认 1000 |
failed_retry_message | string | 设置达到最大重试次数的请求的拒绝返回消息 |
log_warn_message | bool | 是否输出警告消息到日志 |