logo

为 API endpoint 实现一个 rate limiter 装饰器/注解:rolling window,每分钟最多 N 次请求(按用户或全局)。

Implement a rate limiter decorator/annotation for an API endpoint: rolling window, max N requests per minute (per-user or global).

题目类型: 技术面试题

这是一道技术面试题,常见于澳洲IT公司面试中。

难度: hard

标签: Uber, Rate Limiter, Rolling Window, Decorator

目标岗位: Senior Front End Engineer, Frontend Engineer, Web Developer

目标公司: Uber

参考答案摘要

答案(Rolling Window Rate Limiter) 目标: 限制某个 key(例如 userId、IP、API key)在过去 60 秒内的请求次数 ≤ N。 实现思路(面试最稳) 用 Map 存每个 key 的请求时间戳(毫秒)。 每次请求: 取出 timestamps,移除所有 < now - windowMs 的旧时间戳。 如果剩余数量 ≥ N:拒绝...

答题技巧

技术面试题建议先理清思路再作答,从基础概念讲起,逐步深入。可以结合实际项目经验解释技术原理,展示你的理解深度和实践能力。

本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案、收藏题目并进行模拟面试练习。

← 返回面试题库

为 API endpoint 实现一个 rate limiter 装饰器/注解:rolling window,每分钟最多 N 次请求(按用户或全局)。

困难javascriptbackendapisystem-design

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案