全部产品
云市场

限流规则说明

更新时间:2020-02-18 09:25:28

限流规则的定义包括以下维度:

限流类型

  • 接口方法:支持对某个具体的 RPC 接口或普通 Bean 的方法限流。要求在限流对象中配置接口路径名称和方法签名。
  • Web 页面:对基于 Spring MVC 的 Web 请求进行限流。要求在限流对象中配置请求 URI。

运行模式

  • 拦截模式:限流生效的模式,若匹配上规则,会将方法调用进行限制,调用配置的“限流后操作”。
  • 监控模式:仅打印限流记录日志,不实际产生限流效果。

限流算法

  • QPS 计数算法:通过限制单位时间段内允许的请求调用量进行限流。
  • 令牌桶(Token Bucket)算法

有关算法的详细说明参见 限流算法说明

限流后置操作

限流操作
适用于接口方法限流
适用于Web 页面限流
解释
空处理
Y
Y
不做任何处理,返回空值。
抛出异常
Y
N
异常信息为填写的输入框内容。
跳转到指定页面
N
Y
跳转到指定的页面地址。
页面json报文
N
Y
直接将指定的 json 字符串在 HTML response 中返回。默认返回内容为:
{success:false,error:"MAX_VISIT_LIMIT"}
页面xml报文
N
Y
直接将特定的 XML 字符串在 HTML response中返回。默认返回内容为:
  1. <?xml version="1.0" encoding="GBK" ?><alipay> <is_success>F</is_success> <error>MAX_VISIT_LIMIT</error></alipay>

限流条件阈值

  • 条件模型
条件模型 限流阈值 说明
单位时间内服务访问次数或 Web 页面访问次数 QPS 计数值 根据单位时间内的请求数进行限流。
堆内存使用量 最大堆内存使用量(单位为兆MB) 根据当前堆内存使用量进行限流。
CPU 负载 100 * CPU 负载百分比 根据过去一分钟内的 CPU 平均负载进行限流。
并发线程数 最大并发线程数 根据单台机器上并发的线程数进行限流。
  • 单位时间:打印限流日志的周期。对于单位时间内访问次数的限流条件,也表示统计周期。单位为毫秒(ms)。最小值为 1000 ms。
  • 限流阈值:见上表。
  • 流量类型
    • 所有流量:对正常流量和压测流量均限流。
    • 正常流量:仅对正常流量限流。
    • 压测流量:仅对压测流量线路。

限流对象

  • 对于接口方法,配置要限流的接口路径名称和方法签名。
  • 对于 Web 页面方法,配置要限流的请求 URI。

更多详情,请参考 配置限流对象参数