Java 互联网大厂面试实战:Spring Boot、MyBatis、Kafka、Redis 与 AI Agent 的 3 轮深度追问
场景设定
面试场景:某互联网大厂 Java 后端岗位面试。
业务场景:电商与 AIGC 融合平台,负责商品详情、订单、消息通知、风控拦截、AI 导购与智能客服。
人物设定:面试官严肃专业,燕双非是典型水货程序员,简单题能接住,复杂题开始含糊其辞。
第一轮:基础架构与电商核心链路
问题 1:Spring Boot 为什么适合电商订单系统?启动和自动配置解决了什么问题?
面试官:如果让你负责一个高并发电商订单系统,为什么会优先选 Spring Boot?
燕双非:因为它启动快、配置少,整合 MyBatis、Redis、Kafka 这些组件比较方便,直接就能把订单服务搭起来。自动配置能减少大量样板代码,开发效率高。
面试官:这个回答还行,至少知道 Spring Boot 的核心价值。
问题 2:MyBatis 和 JPA 在订单、库存、营销表场景里怎么选?
面试官:订单系统里你会用 MyBatis 还是 JPA?为什么?
燕双非:嗯……如果是复杂 SQL、多表关联、需要精细控制性能,我会更倾向 MyBatis;JPA 适合简单 CRUD,开发快。
面试官:对,电商场景经常有复杂查询和报表,MyBatis 更灵活。不过你还要考虑团队规范和领域模型一致性。
问题 3:Redis 在商品详情页和购物车里分别怎么用?
面试官:说说 Redis 在商品详情页和购物车场景中的作用。
燕双非:商品详情页可以缓存热点商品信息,降低数据库压力;购物车可以用 Redis 存用户临时选择的商品,支持高频读写。
面试官:很好,还可以进一步考虑过期策略、缓存穿透和一致性问题。
第二轮:异步解耦、稳定性与安全
问题 4:Kafka 为什么适合订单创建后的异步流程?
面试官:订单创建后,为什么很多公司会把发券、发短信、推荐埋点这些事情放到 Kafka 里?
燕双非:因为主链路要快,Kafka 能把后续非核心流程异步化,削峰填谷,避免订单接口被下游拖慢。
面试官:说得不错。那你知道怎么处理消息重复消费吗?
燕双非:这个嘛……一般做幂等,可能用订单号做唯一标识,消费端先查一下有没有处理过。
面试官:方向对了,幂等设计是关键。
问题 5:Spring Security 和 JWT 如何保护电商后台管理接口?
面试官:后台管理系统怎么做登录鉴权?
燕双非:可以用 Spring Security 统一做认证授权,登录后签发 JWT,后续请求带 token,网关或服务端解析 token 判断权限。
面试官:可以,继续往下想,JWT 的失效、刷新和权限粒度也很重要。
问题 6:Resilience4j 在支付回调和库存服务里怎么用?
面试官:如果库存服务慢了,支付回调接口会怎样?
燕双非:可以用 Resilience4j 做限流、熔断、重试和超时控制,避免一个下游故障把整个支付链路拖垮。
面试官:对,稳定性设计非常重要,但重试要注意雪崩和幂等。
问题 7:Micrometer + Prometheus + Grafana 主要监控什么?
面试官:订单链路上线后,你会重点看哪些指标?
燕双非:接口 QPS、RT、错误率、Kafka 堆积、Redis 命中率、数据库连接池耗尽这些吧,然后用 Micrometer 暴露指标,Prometheus 抓取,Grafana 看大盘。
面试官:不错,已经有点平台意识了。
第三轮:AI 导购、检索增强与复杂工作流
问题 8:RAG 和向量检索如何用于 AI 导购?
面试官:现在电商平台要做 AI 导购,怎么避免模型胡说八道?
燕双非:可以把商品知识、活动规则、FAQ 做文档加载,然后做向量化和语义检索,先检索再生成,也就是 RAG。这样回答更贴近业务事实。
面试官:很好,能提到先检索再生成,说明你理解了核心思路。
问题 9:Agent、工具调用标准化和复杂工作流怎么设计?
面试官:如果 AI 导购需要查库存、查优惠券、下单推荐,你会怎么设计?
燕双非:可以把这些能力封装成工具,让 Agent 根据用户意图自动调用。工具调用最好标准化,输入输出统一,这样未来接更多系统也方便。
面试官:嗯,至少知道 Agent 不是单纯聊天,还要能调用业务工具。
问题 10:如何处理 AI 幻觉和企业文档问答中的准确性?
面试官:如果客服系统回答错了退款规则,怎么办?
燕双非:要限制模型自由发挥,优先基于企业文档检索结果回答;对关键字段做规则校验;高风险问题可以转人工。还要持续评估召回和答案质量。
面试官:这就对了,AI 系统不能只追求“会说”,还要追求“说对”。
详细解析:所有问题逐题拆解
1. Spring Boot 为什么适合电商订单系统?
Spring Boot 的优势在于约定大于配置、自动配置、Starter 依赖管理和嵌入式容器支持。对于电商订单系统,核心诉求是快速交付、模块拆分清晰、易于接入缓存、消息队列、监控和安全框架。
业务上,订单服务通常要对接支付、库存、营销、物流、短信通知等多个外部系统。Spring Boot 让开发者把精力