高并发系统设计-限流

高并发系统设计-限流 一、什么是限流 限流(Rate Limiting)是指限制单位时间内允许进入系统的请求数量。 简单来说,就是: 控制流量进入系统的速度,而不是等系统崩溃之后再处理。 例如: 某接口限制:1000 Request / Second 如果一秒钟来了:1500 Request 那么:1000正常处理,500拒绝访问 通常返回:HTTP 429 Too Many Requests 限流的本质就是: 宁可拒绝一部分请求,也不要让整个系统崩溃。 二、为什么需要限流 因为系统资源是有限的。 例如: 服务器配置: CPU:8 Core Memory:16GB MySQL连接池:100 Redis连接池:200 这些资源都存在上限。 假设数据库最大只能处理: 5000 QPS 如果突然来了:30000 QPS 没有限流:30000全部访问MySQL->连接池耗尽->CPU100%->慢SQL->超时->…->系统崩溃 有了限流:30000->Gateway->允许5000->25000直接拒绝->系统稳定 虽然部分用户会收到"系统繁忙"的提示,但系统整体仍然保持可用。 这正是限流存在的意义 三、典型应用场景 限流几乎存在于所有互联网系统中。 1、登录接口 例如:POST /login 限制:每个IP 5次/分钟 防止: 暴力破解密码 恶意攻击 短时间大量登录 2、短信验证码 3、支付接口 4、秒杀系统 5、开放API 四、限流的位置 限流通常不是只有一层。 一般有四层。 第一层:CDN 例如: Cloudflare->限制恶意流量 主要抵御: CC攻击 DDoS Bot 第二层:Nginx / Gateway 例如: Client->Gateway->Application...

July 11, 2025 · 3 min · Leanku