拿下技术面上传简历

某接口部署在 20 个实例上,业务上要求整个集群对外总限流 1000 QPS。如果直接给每个实例配 50 QPS 的单机令牌桶,会有什么问题?如果要做到真正的集群级限流,你会怎么实现,以及你的方案会付出什么代价?

工程与系统设计系统设计3-5 年知识点 1 个

面试官在考什么

判断候选人是否理解单机限流在实例不均衡和流量倾斜下的失效,以及集中式限流的性能代价与近似方案之间的取舍。

限流降级

回答框架 · 前两步

  1. 单机 50 QPS 的致命问题是假设流量在 20 个实例上均匀分布:实际会因负载均衡策略、连接复用、实例冷热、慢节点导致倾斜,总量要么超过 1000 要么远低于 1000,同时实例扩缩容时阈值还得人工改
  2. 集群限流的实现路径有代价梯度:Redis + Lua 精确但每请求一次 RTT、有单点和性能上限;令牌预取(实例按批租借令牌,本地消耗)能大幅降低 Redis 压力,代价是精度下降(最坏会瞬时超发一批令牌的量);也可以用一致性哈希把某个 key 的配额固定到某台机器,本质是精度和可用性的权衡

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

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

同一能力域的其他题