美团 AI 后端开发一面面经
《面试题目》
一、 个人背景与经历挖掘
- 自我介绍
- AI 工具在学习实践中的融入及具体协同方式
二、 计算机基础与 Java 核心
- 栈和队列的区别及适用场景
- 基于数组实现栈和队列的注意点,循环队列的扩容逻辑与注意事项
- 接口与抽象类的区别,支付系统设计中的选型逻辑
- 通用日志与权限校验逻辑的架构位置
三、 数据库与架构设计
- 分库分表策略,如何解决分片热点问题
- 加盐打散与缓存对查询性能的影响平衡
- 项目管理系统设计:多对多任务表结构设计,任务状态与优先级的灵活性维护
四、 网络通信与接口设计
- 大模型文本生成 HTTP 接口设计
- 流式返回(Stream)的具体数据传输设计
- 错误码设计原则与前端定位优化
五、 场景解决与行为面试
- 识别并解决潜在隐患的经历
- 布隆过滤器的误判处理与分布式锁的性能瓶颈应对
- 极端流量下的边界条件与降级策略
《参考解析》
- 接口 vs 抽象类:接口强调“契约/能力”(如支付接口定义),抽象类强调“模板/继承关系”。支付系统建议用接口,方便实现多种支付渠道(策略模式)。通用逻辑(日志/权限)建议采用 AOP 切面实现,解耦核心业务。
- 分库分表热点:通过一致性 Hash 算法平摊数据,或利用热点 Key 缓存(本地缓存+Redis)、读写分离减轻 DB 压力。加盐打散虽然能分散存储,但会增加跨分片查询复杂度,需根据业务场景权衡。
- 流式接口(SSE):后端采用 Server-Sent Events 或 WebSocket,通过
Content-Type: text/event-stream持续推送数据块,减少前端首字等待延迟。 - 布隆过滤器误判:布隆过滤器只能判断“一定不存在”或“可能存在”。误判应对方案:在数据库层做兜底校验,或通过增加哈希函数数量与位图大小降低误判率。
- 降级策略:极端流量下采用限流(令牌桶/漏桶)、熔断(Sentinel/Hystrix)及降级(关闭非核心服务如评价、推荐系统),优先保障下单核心路径的可用性。