🎯 什麼情境該想到我

當你要限制「某使用者/IP/API 在一段時間內最多幾次請求」,保護服務不被流量或濫用打垮時。

⚙️ 怎麼用(選演算法)

  • Token Bucket(權杖桶):以固定速率補充權杖,每次請求耗一個;桶有容量 → 允許突發、最常用。
  • Leaky Bucket(漏桶):請求排隊以固定速率流出 → 平滑輸出、不允許突發。
  • 固定視窗計數:每個時間窗計數,簡單但視窗邊界會爆量(兩窗交界瞬間 2 倍)。
  • 滑動視窗:用滑動時間窗平滑計數,較準但成本略高。

實作要點:分散式下把計數放共享儲存(如 Redis),並回傳 429 Too Many Requests + Retry-After

🧪 我實際套用的紀錄

  • 2026-07-15:(待填)

⚠️ 注意

  • 分散式多實例要共享狀態,否則每台各自限流=實際上限被放大 N 倍。

🔗 相關工具