拿下技术面上传简历

场景:你在做 API 网关的单机限流。要求:窗口 1 秒,QPS 上限 1000,允许突发 2000,P99 延迟增加 < 1ms,内存 < 10MB。请现场手写核心数据结构与 tryAcquire() 代码,并说明你选固定窗口、滑动窗口、令牌桶还是漏桶,以及理由。如果再要推广到 500 台机器做全局限流,你会怎么演进?

代码能力与调试排障现场编码5 年以上知识点 1 个

面试官在考什么

判断候选人在给定性能/内存约束下对限流算法本质的取舍能力,以及从单机到分布式的架构演进判断。

手写算法

回答框架 · 前两步

  1. 选令牌桶或滑动窗口,说明突发与平滑、内存与精度的取舍;固定窗口有双倍突发问题。
  2. 核心状态包括令牌数、上次刷新时间,用 CAS 或原子累加减少竞争,避免每次请求都加锁。

还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

同一能力域的其他题