Skip to content

ActiveRequest 限流 #6

@flycash

Description

@flycash

#1 中我提到使用滑动窗口限流器。但是它也有一个缺陷,就是执行 lua 脚本本身性能比较差。

那么有一种更加简单的限流方式,就是在维持一个计数,每次请求来了 +1,请求处理完毕 -1。当请求正在处理过程中,也叫做 ActiveRequest,因此这个限流也被叫做活跃请求数限流。

如果在请求到来 +1 之后,发现超过了阈值,就直接拒绝请求。

那么应该有两个版本:

  • 本地单机限流
  • 基于 Redis 的集群限流。

你可以分成两个合并请求,也可以一个合并请求直接完成两个限流器。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions