美团全栈一面面经(40min)
面试题目
项目介绍
- 简历上的三个项目全部介绍一遍,并追问细节。
基础与设计
- HTTP 接口设计过吗?
- 设计模式了解吗?
- MySQL 的事务讲解一下。
项目深挖
- 游戏项目的定时器是怎么实现的?如果想要每天十点钟定时发送要怎么设计?有没有更优雅一点的方法?
- 这个 HTTP 服务器在网上能用吗?做了什么接口吗?
- AI 是怎么提效的?
- 稳定性的几个指标了解吗?
- 你这个项目前后端是如何进行通信的?
技术广度
- Java 的中间件有了解吗?
职业规划
- 后续有兴趣做后端吗?你会怎么学习?
参考解析
Q4. MySQL 事务
- 事务四大特性(ACID):原子性、一致性、隔离性、持久性。
- 四种隔离级别:读未提交、读已提交、可重复读(MySQL默认)、串行化。
- 可重复读通过 MVCC(多版本并发控制)+ Next-Key Lock 解决幻读问题。
- 常见命令:
BEGIN/COMMIT/ROLLBACK。
Q5. 定时器实现 & 每天十点定时任务
- 简单定时器可用最小堆或时间轮实现,轮询到期任务并执行。
- 每天固定时刻触发:计算当前时间到目标时刻的时间差,到期后重新注册下一个24小时的任务。
- 更优雅的方案:使用 Cron 表达式(如
0 0 10 * * ?),配合调度框架(Quartz / xxl-job)或系统级 cron,避免手动计算时间差,支持持久化和分布式调度。
Q8. 稳定性核心指标
- 可用性(Availability):SLA,如 99.9%(全年故障时间 ≤ 8.76h)。
- 错误率(Error Rate):请求失败比例,通常监控 5xx 占比。
- 响应时间(Latency):P99/P95/平均延迟,反映长尾性能。
- 吞吐量(QPS/TPS):系统单位时间处理请求数。
- 故障恢复时间(MTTR):平均恢复时长,越短越好。
Q9. 前后端通信方式
- 最常见:RESTful HTTP + JSON,前端 fetch/axios 发起请求,后端返回 JSON 数据。
- 实时场景:WebSocket 双向通信,适合游戏、聊天等低延迟需求。
- 也可提及 SSE(服务端推送)或 gRPC(内部服务间)作为加分项。
Q10. Java 中间件
- 消息队列:Kafka(高吞吐)、RocketMQ(美团自研基础)、RabbitMQ(低延迟)。
- 缓存:Redis,支持多种数据结构,用于热点数据缓存、分布式锁。
- 注册中心/配置:Nacos、Zookeeper。
- RPC 框架:Dubbo、Spring Cloud OpenFeign。
- 面试可重点介绍 Redis + Kafka,这两个在美团使用极为广泛。
Q3. 设计模式
- 建议掌握高频模式:单例(懒汉/饿汉)、工厂、观察者、策略、装饰器、代理。
- 结合项目场景举例说明使用动机,比八股更有说服力。