京东JDY后端一面面经
《面试题目》
- 毕业届次、课程安排、实习时长及到岗时间?
- 简历项目是借鉴的开源项目还是自己做的?
- 详细介绍AI视频解析平台项目功能。
- 视频上传提音到送大模型的完整链路?
- 视频转音频功能如何实现?
- 音频给大模型是切片还是整段一次性传输?
- 选用哪个大模型及选型原因?
- 与大模型交互还有哪些扩展功能?
- 大模型交互是否使用RAG还是仅用提示词?
- 如何发现并解决大模型幻觉问题?
- 项目中具体如何设计提示词减少幻觉?
- 总结功能是按单节还是全章节处理?
- 加入对话能力和追问功能的逻辑是什么?
- 项目中分布式锁解决什么具体场景问题?
- 分布式锁的Key基于什么设计?
- 视频MD5值在前端还是服务端计算?
- Redisson分布式锁底层原理?
- 为何在setnx基础上加Lua脚本实现分布式锁?
- 分片续传的具体实现逻辑?
- 分片上传是串行还是并行?配置了几个线程?
- 限流加在哪个环节?使用什么技术实现?
- 高并发访问Redis执行限流如何保证数据一致性?
- 核心业务流程涉及几张表及具体交互?
- 视频长文本的数据表字段类型及设计?
- 事务的作用及哪些SQL场景需要加事务?
- MySQL常用的索引类型有哪些?
- 什么是聚集索引?主键索引属于哪种索引?
- JUC并发包用过哪些多线程相关的类?
- ReentrantLock底层实现原理?
- Java创建线程的几种方式?
- 线程的start()与run()方法区别?
- MinIO分片合并失败如何处理,残余临时分片文件的清理机制。
《参考解析》
- 分布式锁(Redisson/Lua):Redisson基于Redis的Hash结构和Lua脚本实现,保证原子性,并配合Watchdog(看门狗)机制自动续期,解决锁过期但业务未执行完的问题。
- 大模型幻觉处理:核心思路是降低模型“盲猜”概率。通过Prompt Engineering(提示词工程)限制模型输出范围;引入RAG(检索增强生成)提供外部知识库支持,强制模型依据上下文回答。
- 分片续传逻辑:前端对文件进行MD5校验,后端通过Redis记录已上传的分片索引;上传过程中基于分片ID在MinIO中暂存,所有分片就位后调用
composeObject合并文件。 - Redis限流一致性:使用Lua脚本执行“读取计数-判断阈值-更新计数”的过程,确保多步操作在Redis侧具备原子性,避免并发导致计数超额。
- 聚集索引:数据行的物理存储顺序与索引键顺序一致,主键索引默认即为聚集索引,查找效率高,范围查询速度快。