context_limiter

context_limiter #

描述 #

context_limiter 过滤器用来按照请求上下文来进行限速。

配置示例 #

配置示例如下:

flow:
  - name: default_flow
    filter:
      - context_limiter:
          max_requests: 1
          action: drop
          context:
            - _ctx.request.path
            - _ctx.request.header.Host
            - _ctx.request.header.Env

上面的配置中,对 _ctx.request.path_ctx.request.header.Host_ctx.request.header.Env 这三个上下文变量来组成一个 bucket 进行限速。 允许的最大 qps 为 1每秒,达到限速直接拒绝范围外的后续请求。

参数说明 #

名称类型说明
contextarray设置上下文变量,依次组合成一个 bucket key
intervalstring评估限速的单位时间间隔,默认为 1s
max_requestsint单位间隔内最大的请求次数限额
max_bytesint单位间隔内最大的请求流量限额
actionstring触发限速之后的处理动作,分为 retrydrop 两种,默认为 retry
statusstring设置达到限速条件的返回状态码,默认 429
messagestring设置达到限速条件的请求的拒绝返回消息
retry_intervalint限速重试的时间间隔,单位毫秒,默认 10,即 10 毫秒
max_retry_timesint限速重试的最大重试次数,默认 1000
failed_retry_messagestring设置达到最大重试次数的请求的拒绝返回消息