互联网大厂 Java 面试实录:Spring Boot、Kafka、Redis、OpenFeign、JWT、RAG 与 MCP 场景深挖
互联网大厂 Java 面试实录:Spring Boot、Kafka、Redis、OpenFeign、JWT、RAG 与 MCP 场景深挖
场景:互联网大厂「企业协同与 SaaS + AIGC 智能客服」方向面试。
第一轮:基础与业务链路
面试官:先说说你在企业协同 SaaS 里,为什么常用 Spring Boot + Maven 组合?
燕双非:Spring Boot 上手快,Maven 依赖管理方便,适合快速搭建多模块项目,打包也标准化。
面试官:回答得还行。那如果我们要做一个“工单创建”接口,你会怎么设计 REST API?
燕双非:嗯……一般就是 POST /tickets,入参带标题、内容、优先级,返回工单 id。接口文档最好用 Swagger/OpenAPI。
面试官:不错,至少路径设计还算清楚。那工单创建后要发消息通知,Kafka 和 RabbitMQ 你怎么选?
燕双非:这个……Kafka 适合高吞吐、日志型;RabbitMQ 更适合复杂路由和业务消息。我们可以按场景选。
面试官:嗯,能分清“吞吐”和“路由”是加分项。
第二轮:核心实现与稳定性
面试官:现在工单服务要接入企业 SSO,JWT 和 OAuth2 你怎么理解?
燕双非:JWT 是一种 token 形式,常用来承载用户信息;OAuth2 更像授权协议,解决第三方授权登录和 token 获取流程。
面试官:好,方向正确。那如果调用外部审批系统,OpenFeign 和 Resilience4j 怎么配合?
燕双非:OpenFeign 负责声明式远程调用,Resilience4j 可以做熔断、限流、重试,避免下游挂了把自己拖死。
面试官:这个回答很像干过线上事故。那工单状态变更后,如何保证缓存一致性?你会用 Redis、Spring Cache 还是 Caffeine?
燕双非:本地热点用 Caffeine,分布式共享数据一般用 Redis。Spring Cache 可以统一抽象,方便切换实现。缓存更新要注意双写一致性问题。
面试官:嗯,知道一致性问题,说明不是只会“加缓存”三个字。
第三轮:AIGC 与智能客服落地
面试官:我们现在要做一个企业智能客服,接入 Spring AI、RAG、MCP、向量数据库。你先说说整体链路。
燕双非:大概是用户提问后,先做语义检索,把企业文档切片后向量化,去向量数据库里找相关内容,再把检索结果和问题一起塞给大模型生成答案。MCP 可以把工具调用标准化,比如查工单、查订单、查知识库。
面试官:这轮回答比前面像样。那如果客服回答出现 AI 幻觉,怎么控制?
燕双非:可以做检索增强生成,优先让模型基于检索结果回答;同时设置提示词约束、答案置信度阈值、来源引用,必要时让模型“不会就说不会”。
面试官:不错。最后一个问题,复杂工作流里怎么处理聊天会话内存和工具执行框架?
燕双非:会话内存保存上下文,工具执行框架负责调用外部系统。多轮对话时要把历史、用户意图、工具结果组合起来,避免每轮都“失忆”。
面试官:行了,今天就到这儿,你先回家等通知吧。
问题详解
1. 为什么企业协同 SaaS 常用 Spring Boot + Maven?
Spring Boot 提供自动配置、Starter 依赖和内嵌容器,适合快速构建标准化服务。Maven 负责依赖收敛、生命周期管理、多模块拆分,便于在企业协同 SaaS 中实现“门户、审批、消息、文件”等模块化开发。
2. REST API 为什么常用 POST /tickets 这类设计?
工单创建是典型资源新增操作,使用 POST 符合 REST 语义。返回工单 id 便于后续状态流转、查询和通知。配合 Swagger/OpenAPI 可让前后端协作更高效。
3. Kafka 和 RabbitMQ 如何选?
Kafka 更适合高吞吐、可回放、事件流式场景,如埋点、审计、消息通知流水。RabbitMQ 更适合复杂路由、延迟投递、业务消息驱动,如工单路由、审批通知。若是“高并发通知流”偏 Kafka,若是“业务规则分发”偏 RabbitMQ。
4. JWT 和 OAuth2 的关系是什么?
OAuth2 是授权协议,解决“谁能代表用户访问资源”的问题;JWT 是 token 的一种实现方式,常用于承载身份、角色、过期时间等信息。企业 SSO 中常见做法是 OAuth2 获取 JWT,再在网关和服务内做校验。
5. OpenFeign 与 Resilience4j 为什么常搭配?
OpenFeign 简化 HTTP 调用,让代码像调用本地接口一样调用远程服务。Resilience4j 则提供熔断、限流、重试、隔离等容错机制,避免外部系统抖动扩散到核心业务,尤其适合审批、IM、第三方通知等依赖场景。
6. Redis、Spring Cache、Caffeine 如何协同?
Caffeine 用于本地缓存,延迟低、性能高,适合热点数据;Redis 适合分布式缓存,多个实例共享;Spring Cache 提供统一抽象,便于在不同业务中切换实现。核心难点是缓存一致性、失效策略和穿透/击穿/雪崩治理。
7. 智能客服里 RAG 的作用是什么?
RAG(检索增强生成)先从企业文档、FAQ、工单库中检索相关内容,再把结果交给大模型生成回答。它能显著降低幻觉,提高企业知识问答的准确性,尤其适合制度类、产品类、流程类问题。
8. MCP 为什么对 AI 系统重要?
MCP(模型上下文协议)用于标准化大模型与外部工具、数据源的连接方式。它让“查订单、查工单、查知识库、调用审批”这类工具能力变得可插拔,降低 Agent 系统的集成复杂度,提升扩展性。
9. 如何控制 AI 幻觉?
常见手段包括:只允许基于检索结果回答、增加引用来源、设置置信度阈值、对高风险问题转人工、对提示词进行约束、对工具调用结果进行校验。对企业场景来说,宁可少答,也不要乱答。
10. 聊天会话内存和工具执行框架怎么配合?
会话内存负责保存多轮对话上下文、用户偏好和中间结果;工具执行框架负责把模型生成的意图转成外部调用。两者结合后,Agent 才能在多轮对话中完成复杂工作流,比如“先查订单,再改地址,再通知用户”。
结语
感谢阅读,希望这篇文章能帮助你更好地准备 Java 面试,理解企业协同 SaaS 与 AIGC 智能客服场景下的常见技术问题,也祝你在面试中稳稳拿下心仪 Offer。
更多推荐


所有评论(0)