跳到主要内容

高并发下的限流守卫-动态令牌桶

plus 版本专属

此章节是黑马点评 Plus 版本中专有的内容,而在整套文档中将普通版本和 Plus 版本都融合在了一起,让大家更方便的学习。

如果没有限流会存在哪些问题?

  • 秒杀流量瞬时暴涨: 入口在毫秒级出现尖峰并发,直接把请求压到库存扣减脚本与数据库会导致系统过载,响应抖动、超时飙升乃至雪崩
  • 不公平竞争与刷子横行: 同一 IP 或用户的高频刷新会挤占配额,导致普通用户难以下单
  • 下层链路被动背锅: 即使在 Redis 执行 Lua 的扣减是原子性,但是过高 QPS 仍会让 Redis CPU 层面、网络 I/O、日志写入成为瓶颈
  • 双重拦截与重复计数风险: 如果把限流放在更深一层(如 Service),可能与其他入口叠加,造成一次操作被多次计数,出现“误伤”
  • 可观测与处置能力缺失: 没有统一入口的限流事件与处罚策略,无法基于阻断原因做黑名单封禁或运营分析

引入限流功能后,有什么优势?

在秒杀优惠券的入口处加入限流,能在业务逻辑之前进行“早拒绝、轻负载”的流量治理:

  • 单次判定即止损: 在令牌校验/下单前统一裁决,避免把大量无效请求推入扣减脚本与数据库
  • 双维度公平: 同时按 IP 与用户维度控制速率,限制恶意刷新与重复点击
  • 场景化阈值: 通过使用“下单场景”的窗口与阈值,和“发令牌场景”解耦
  • 统一事件与处罚闭环: 允许/阻断都能触发事件与处罚策略,形成观测与黑名单反哺
  • 避免重复计数: 统一在控制器层执行,防止深层服务再次计数造成双重拦截

能够解决的问题

  • 抗峰值与稳响应: 在入口把突发流量削峰,保护后端资源与用户体验
  • 公平性保障: 避免少数高频用户/脚本占用大部分配额
  • 安全与合规: 快速发现恶意行为并临时封禁(黑名单),减小二次冲击
  • 可观测与调优: 限流事件可被采集与分析,支持动态调参与运营策略

限流功能的实现

为了让大家能更好的理解,采取线性执行的讲解方式,这样可以和程序执行的流程一致,等涉及到配置参数的读取,bean 的加载时,再分析是如何生成的。

一、代码实现

为了让大家能更好的理解,采取线性执行的讲解方式,这样可以和程序执行的流程一致,等涉及到配置参数的读取,bean 的加载时,再分析是如何生成的。

付费内容提示

该文档的全部内容仅对「码力全开」项目实战&技术讲解 知识星球用户开放

加入星球,一次获得完整项目资料、全栈技术知识库和长期答疑服务。

100万+字全栈技术知识库深入讲解技术核心、数据库、中间件和分布式等内容
8套热门的实战项目持续更新的企业级项目覆盖高并发、微服务、数据中台 和 AI Agent 等方向
AI 技术知识大模型面试详解覆盖 AI 模型原理、Agent、RAG、MCP、Skills、Harness 等核心知识点
文档 + 视频两种讲解形式既能系统阅读,也能跟随视频理解核心业务

完整项目实战资料

每套项目均包含从 0 到 1 讲解文档核心业务讲解视频

从基础项目到复杂业务场景,项目资料会持续更新。

8 套项目
  • 01Nexus Agent AI 智能体
  • 02Nexus Agent Pro 完全版
  • 03黑马点评Plus
  • 04大麦
  • 05大麦Pro
  • 06大麦AI
  • 07流量切换
  • 08数据中台

加入后还能获得

进入星球后,即可享受上述所有服务,保证不会再有其他隐藏费用。

从学习、面试到项目启动,都可以继续获得支持。

  • 1 对 1 解答项目和技术问题都可以提问
  • 针对性补充没有讲清楚的内容会继续补充
  • 面试与简历指导梳理回答技巧和项目亮点
  • 中间件云环境项目依赖可以直接接入使用
  • 面试后复盘被问住的问题可以继续交流
  • 远程问题解决项目启动问题可协助排查
知识星球二维码

扫码进入知识星球

  1. 打开微信,扫描左侧二维码,加入「码力全开」项目实战&技术讲解 知识星球
  2. 查看星球使用指导,获取完整项目讲解资料索引
解锁全部付费内容
🎁优惠