Skip to content

限流的分类

1. 基于资源的限流

  • IP 限流:根据用户的 IP 地址进行访问控制,防止单个 IP 过多请求。
  • 接口限流:对单个 API 接口进行访问限制,防止某个接口过载。
  • 用户限流:针对特定用户(如基于账号、Session、Token 等)进行限流。
  • 设备限流:针对访问同一应用的设备(如通过设备 ID、硬件 ID 等)进行限流。

2. 基于时间的限流

  • 固定窗口限流:在固定时间窗口内(如每小时、每天),限定请求次数。
  • 滑动窗口限流:请求的时间窗口是动态变化的,窗口内请求次数超过限制即进行限制。
  • 令牌桶限流:通过令牌生成的方式进行请求控制,令牌桶中有固定数量的令牌,用户请求时需要获取令牌。
  • 漏斗限流:请求以漏斗的方式逐渐流入,按照速率限制进入系统。

3. 基于流量的限流

  • 请求频率限流:控制单位时间内的请求频率(如每秒、每分钟、每小时)。
  • 带宽限流:限制数据的传输带宽,防止过多流量占用带宽资源。
  • 请求量限流:限制在单位时间内请求的总量,而不仅仅是频率。

4. 基于策略的限流

  • 动态限流:根据系统当前的负载情况动态调整限流策略。
  • 静态限流:在系统初始化时设定固定的限流阈值,无法根据当前情况进行调整。
  • 优先级限流:根据请求的优先级进行限流,优先级较高的请求会优先处理。

5. 基于身份的限流

  • 匿名用户限流:针对没有登录的用户进行限流,防止机器人和匿名用户的过度请求。
  • 认证用户限流:针对已认证或注册的用户进行限流,确保不影响正常的用户使用体验。

6. 基于流量来源的限流

  • 来源 IP 限流:限制来自特定 IP 地址范围的流量。
  • 来源地理位置限流:根据用户地理位置对流量进行限制(例如,仅允许某些地区的访问)。