
Java 面试实战Spring Boot Kafka Redis Spring Security Spring AI 的互联网大厂求职三轮攻防场景互联网大厂 Java 面试人物严肃面试官、搞笑水货程序员燕双非第一轮基础能力与业务理解面试官你先简单说下假如让你做一个“本地生活服务”下单系统Spring Boot 启动后最先要关注什么燕双非先关注能不能跑起来端口别冲突配置别写错数据库连上就行。Spring Boot 自动配置挺方便省得我手搓一堆 XML。面试官回答得还行说明你知道自动配置和配置管理的重要性。那你说说订单创建后如果要发消息给商家Kafka 适合怎么用燕双非这个我熟订单落库后发一条消息到 Kafka商家系统订阅后处理。这样下单接口就不会一直等商家响应比较快。面试官不错知道异步解耦和削峰。那如果消息重复消费了怎么办燕双非呃……我一般让消费端先查一下订单状态再决定处理不处理。或者加个唯一标识别重复扣库存。面试官思路对至少知道幂等性。继续说Redis 在这个场景里除了缓存还能做什么燕双非能做热点商家信息缓存还能存验证码、限流计数、登录态之类的。反正快放 Redis 里比较省数据库。面试官可以方向对。那你说下 Spring Security 为什么常用在这种系统里燕双非管登录、权限、接口保护呗。像商家后台、运营后台、用户端接口权限不一样得拦一下。面试官很好至少知道它不是“加个依赖就自动安全”。第二轮架构设计与稳定性面试官现在你负责“本地生活服务 支付确认”链路支付成功后要通知订单、积分、营销三个子系统。你怎么设计燕双非支付系统成功后发一条事件到 Kafka三个子系统各自消费。这样解耦谁慢谁自己扛别影响主流程。面试官好。那如果营销系统偶尔挂了消息堆积会不会拖垮整体燕双非可以用消费者组分摊压力另外做重试和死信队列。还可以监控堆积量超过阈值就告警。面试官不错开始有运营意识了。那 Spring Cloud 体系里服务之间调用你会怎么做容错燕双非我会用 OpenFeign 调接口配合 Resilience4j 做熔断、限流、重试。下游不行就快速失败别把上游拖死。面试官这个回答比刚才像样。那你说下为什么有时候不能盲目重试燕双非因为有些错误不是临时故障重试只会放大压力。比如参数错了重试一百次也是错。面试官对至少知道区分可恢复和不可恢复错误。继续Redis 缓存和数据库一致性怎么处理燕双非一般先更新数据库再删缓存。这样读请求拿不到旧缓存下一次会回源数据库重新加载。面试官可以经典方案。那如果删缓存失败呢燕双非那……可以发个延迟消息补偿或者通过消息队列重试删除。实在不行就先接受短暂不一致。面试官行知道最终一致性是工程上的妥协。第三轮AI 与复杂系统融合面试官现在很多业务要做智能客服。假设你在这个本地生活平台里接一个 AI 客服Spring AI、RAG、向量数据库这些你怎么理解燕双非Spring AI 我理解是把 AI 接口封装得更像 Java 生态RAG 就是先查知识库再让大模型回答避免它瞎编。向量数据库就是存语义向量方便相似内容检索。面试官不错基础概念没问题。那如果要做“退款规则问答”为什么不能只靠大模型燕双非因为大模型会幻觉可能把规则说错。退款规则这种强业务约束得结合企业文档问答把官方文档检索出来再回答。面试官很好知道要控制幻觉。那“Agent”在这里能发挥什么作用燕双非Agent 可以自己决定要不要查订单、查规则、查用户状态然后再组织回答。像智能客服遇到复杂问题可以先调用工具再输出结果。面试官继续说工具调用标准化为什么重要燕双非因为客服系统可能接很多工具查订单、查物流、查退款统一接口后更容易扩展也方便做审计和权限控制。面试官思路不错。最后一个问题如果线上 AI 客服回答错误怎么排查燕双非先看是召回错了、提示词错了还是工具调用错了。再看向量检索有没有召回到正确文档最后检查模型输出和过滤规则。面试官好今天就到这里吧。回家等通知。问题详解与知识点总结1. Spring Boot 在本地生活下单系统中的作用Spring Boot 适合快速构建业务系统核心价值是自动配置、约定优于配置、内嵌容器和统一的 starter 体系。在本地生活场景中订单、商家、支付、营销等模块并存Spring Boot 能快速统一工程结构与依赖管理减少大量重复配置。2. Kafka 在订单事件驱动中的使用Kafka 常用于解耦核心交易链路与后续业务处理。订单创建后投递事件商家通知、积分发放、营销触达等系统异步消费可以提升吞吐并削峰填谷。设计重点包括消息幂等、顺序性、重试、死信队列、监控堆积与消费延迟。3. Redis 的缓存与辅助能力Redis 不仅能缓存热点商家、商品和活动信息还能做验证码、会话、限流计数、分布式锁和延迟任务。使用缓存时要重点关注一致性、穿透、击穿、雪崩和淘汰策略。常见策略是先更新数据库再删除缓存并配合补偿机制。4. Spring Security 在权限体系中的价值Spring Security 适合构建统一认证和授权框架可结合 JWT、OAuth2 或 Session 管理用户身份。对于商家后台、运营后台、用户端等不同角色应该进行细粒度接口授权并配合方法级鉴权、防 CSRF、审计日志等能力。5. OpenFeign 与 Resilience4j 的组合在微服务中OpenFeign 适合声明式调用远程服务Resilience4j 用于熔断、限流、重试和隔离。面试中通常会追问为什么不能盲目重试、如何设置超时、如何避免线程资源被下游拖垮。核心原则是保护系统可用性。6. 缓存一致性与最终一致性数据库和缓存很难做到强一致工程上常用“先写库再删缓存”或“基于消息的延迟补偿”来保证最终一致。删除失败时可以通过重试、消息补偿或定时任务兜底但要接受短时不一致的现实。7. Spring AI、RAG、向量数据库与智能客服Spring AI 让 Java 生态更容易接入大模型能力。RAG 的核心是“检索增强生成”先从知识库中召回相关资料再交给模型组织答案可以显著降低幻觉。向量数据库用于存储文本向量支持语义相似搜索适合企业文档问答、客服和知识检索。8. Agent 与工具调用标准化Agent 的本质是让模型具备“决策 工具调用 结果整合”的能力。对于智能客服它可以自动选择查订单、查物流、查退款规则等工具。工具调用标准化能提升扩展性、可观测性与安全审计能力是构建复杂工作流的基础。9. AI 幻觉排查思路排查 AI 回答错误时通常从召回层、提示词层、工具层和输出层逐步定位是否检索到正确文档、提示词是否约束清晰、工具是否返回异常、模型是否受上下文污染。业务上应增加引用来源、人工兜底和敏感回答拦截。感谢阅读希望这篇文章能帮助你更好地准备 Java 面试、理解大厂真实业务场景并在复杂技术问题中建立清晰的回答思路。