滴滴后端实习一面面经
- 轮次
- 一面
- 时间
- 2026-08
- 来源
- 牛客网
《面试题目》
- 纯 Agent 项目和实习经历中分别承担了哪些工作?
- 后端项目解决了什么业务问题,为什么需要异步调度架构?
- 本地模型性能有限时,如何提高任务处理效率?
- 任务执行失败或连接中断时,如何保证任务不丢失?
- Kafka 与 MySQL 在任务调度中的交互链路是什么?
- 为什么 Kafka 只传任务 ID,而不传完整任务数据?
- 如何保证任务处理与数据库状态更新的一致性?
- 如何防止同一任务重复入队或重复执行?
- 乐观锁和任务 Token 分别解决什么问题?
- 实例宕机后如何识别并恢复未完成任务?
- 文档并发更新时如何使用版本字段实现乐观锁?
- 热点文档频繁修改时,乐观锁会产生什么问题?
《参考解析》
- 任务可靠性:数据库保存任务真相,消息只携带稳定任务 ID,消费者按 ID 加载最新数据。状态迁移使用条件更新和幂等键,消息确认应发生在业务状态持久化之后。
- 失败恢复:执行者领取任务时写入租约和持有者标识,并定期续租。扫描过期租约可恢复宕机任务;重试次数、下一次执行时间和最后错误需要持久化。
- 乐观锁:更新时使用
WHERE id = ? AND version = ?,成功后版本加一。受影响行数为零表示发生冲突,需要重新读取并按业务规则重试或提示冲突。 - 热点冲突:写竞争越高,乐观锁重试成本越大。可通过按实体串行化、合并写请求、缩小冲突字段或重新设计数据粒度降低竞争。