Skip to content
极高进阶

一句话答案

多层限流:前端→网关(Nginx 漏桶/Gateway 令牌桶)→服务(Sentinel 滑动窗口)→DB,分布式用 Redis+Lua。

核心要点

单机: Guava RateLimiter(令牌桶) 分布式: Redis+Lua(滑动窗口) / Sentinel(规则动态配置) 网关层: Nginx limit_req(漏桶) / Gateway RequestRateLimiter

多层限流: 前端→网关→服务→DB,层层防护

追问与易错

追问方向:

  • 网关层和服务层限流区别?
  • 按 IP/用户/接口 分别限流?
  • 限流触发返回什么?

易错点:

  • ❌ 只在网关限流——服务层也需要
  • ❌ 限流越严越安全——太严影响正常用户

💡 记忆锚点

限流像城市交通管控——多层设卡:前端限制点击频率(第一关),网关Nginx漏桶/Gateway令牌桶(第二关),服务层Sentinel滑动窗口按接口/用户/IP维度限流(第三关),DB连接池兜底(最后一关)。单机用Guava RateLimiter,分布式用Redis+Lua保证多节点统一计数。