万类智生后端开发面经

万类智生 · 后端开发 · 2026-04

《面试题目》

一、云图库平台项目问题

  1. 项目背景是什么?整体架构怎么设计的?
  2. 图片上传功能是怎么实现的?
  3. 大文件上传怎么处理?有没有考虑超大文件?
  4. 网站加载慢,你用了什么优化方案?
  5. 双缓存(本地 + Redis)存的是什么数据?是图片还是用户数据?
  6. 项目 DDD 领域是怎么拆分的?
  7. 系统设计边界有没有考虑过?

二、AI Agent 项目问题

  1. 基于 Spring AI 的 AI Agent 整体流程是什么?
  2. 基础任务(比如查天气)完整流转逻辑是怎样的?
  3. 查天气这种功能为什么需要知识库?必要性是什么?
  4. 情感问答的本地知识库检索流程是什么?
  5. Embedding 向量对比的准确性原理是什么?
  6. 为什么需要用 Embedding?
  7. 对话记忆功能是怎么实现的?
  8. 抛开所有框架,重新设计一个极简 Agent 系统怎么做?
  9. 最小闭环(比如 “早上好” 交互)怎么实现?
  10. RAG 完整流程是什么?

三、Java 后端 / 分布式 / 中间件问题

  1. 数据库事务机制你了解多少?
  2. 对 Open Cloud 架构怎么理解?
  3. 有没有想过自建 Agent?
  4. Spring Cloud 微服务学到什么程度?
  5. RabbitMQ 消息队列的实现细节了解吗?
  6. Redis 底层机制你熟悉哪些?
  7. 用 Redis 怎么设计一个消息队列?
  8. Redis 主从复制能用来做消息队列吗?
  9. 高并发场景下的加锁机制怎么设计?

四、技术认知与工具问题

  1. Claude 和 ChatGPT 在代码生成上的差异是什么?为什么?
  2. 你更擅长哪些开发方向?能接受测试 / 前端等岗位吗?
  3. 对 AI 智能家居硬件、端侧算力结合机器学习怎么理解?

五、压力类 / 底层设计问题

  1. 不用任何框架,从零实现一个最小 Agent 怎么做?
  2. 你现在的方案在真实业务场景下能用吗?有哪些缺陷?

《参考解析》

  • 大文件上传:采用切片上传(Chunk Upload),前端将文件切割为固定大小块并添加索引,后端按顺序接收并写入临时目录,最后进行合并(Merge)。超大文件需引入断点续传机制,记录已上传的块索引。
  • RAG 流程:文档解析 -> 文本分块 -> Embedding 向量化 -> 存入向量数据库 -> 检索(Query 向量化后对比) -> 召回上下文 -> LLM 生成回复。
  • Embedding 原理:将非结构化数据转化为高维空间的数值向量,通过计算向量间的余弦相似度(Cosine Similarity)来评估语义的相关性,从而实现模糊搜索。
  • Redis 实现消息队列:使用 List 的 LPUSH/RPOPBRPOP 实现简单的队列;使用 Stream 结构(XADD/XREAD)实现更专业的消息队列,支持消息持久化、ACK 确认机制和消费组模式。
  • 最小 Agent 实现:核心是 Prompt Engineering + LLM API 调用。本质上是一个“输入处理 -> 意图识别 -> 工具调用 (Tool Calling) -> 输出拼接”的循环闭环。