腾讯职能线 AI 全栈一面:容量、安全、Worker 与限流
本场面试题
- 20 MB 的 JSON 输入遇到数万并发,应怎样拆解容量问题?
- 同源策略、CORS 与 CSRF 防御分别解决什么问题?
- Worker 崩溃恢复与优雅退出需要哪些协议?
- 怎样用 JavaScript 实现按 key 限流,并说明窗口边界?
面经与参考答法
腾讯职能线 AI 全栈一面:容量、安全、Worker 与限流
原页发布时间(北京时间):2026-09-18T11:40:37+08:00。面试完整年月日未确认,原文只列月日的地方不补年份。
根据公开候选人自述整理;岗位和面试经历未获外部认证。简答为教学整理,不是作者现场作答。本稿选录已完成知识核验的重点问题;其他原问保留在私有来源草稿中,不称完整原帖转录。
(1)20 MB 的 JSON 输入遇到数万并发,应怎样拆解容量问题?
原帖分别提到项目JSONL传输与20MB JSON上传,但未明确上传数据的具体组织方式、二者关系、响应形式和完整容量合同。先澄清并发持续时间、资源和延迟目标;入口设置字节、超时和并发上限,超大请求与暂时过载分别按合同拒绝。确认格式可增量处理后,再考虑有界读取和处理;允许异步的重任务可进入有界任务队列。用吞吐、内存、CPU和排队分位数验证容量,不能只凭并发数断言加机器即可。 若采用JSONL,还须限制单行字节、对象数量与总量;流式读取不自动限制单条巨大记录或解析后对象的内存。
(2)同源策略、CORS 与 CSRF 防御分别解决什么问题?
同源通常比较协议、主机和端口;同源策略限制浏览器跨源读取等交互,部分跨源提交仍可发生。CORS由服务端声明允许的跨源访问,不能单独证明用户有意发起状态变更。CSRF利用浏览器自动携带的会话凭据冒用用户意图,可按场景使用服务端校验的不可预测token、SameSite Cookie及其他请求来源控制,并避免用GET改变状态。原帖口语“跨域请求伪造”不作为精确定义。
(3)Worker 崩溃恢复与优雅退出需要哪些协议?
先确认任务如何领取、租约或可见性超时、结果何时持久化及如何确认完成。崩溃后由超时重投或扫描恢复,处理器按幂等合同吸收重复;超时不证明外部副作用未发生。主动退出时停止领取新任务,在期限内等待安全点并保存进度和结果,未完成任务按队列合同交还或等待租约到期。不能由“优雅退出”推定自动ACK、取消成功或恰好一次。
(4)怎样用 JavaScript 实现按 key 限流,并说明窗口边界?
先问清固定还是滑动窗口、端点、时钟和单进程或分布式范围。例如约定单进程、同步操作、单调时间,限制(t-T,t]内已接受请求:每个key保存时间戳队列,移除<=t-T的记录,达到limit就拒绝,否则追加t;拒绝不占已接受额度,并清理闲置key。共享额度需要统一入口或共享状态的原子清理、检查与扣减,不能把多进程本地Map相加当作全局限额。