
Java 面试实录Spring Boot Kafka Redis Spring Security RAG 在电商 AIGC 场景下的三轮追问场景互联网大厂 Java 求职者面试人物严肃面试官、搞笑的水货程序员燕双非第一轮基础能力与业务理解面试官我们先从电商 AIGC 场景说起。假设你负责一个“商品文案智能生成”服务基于 Spring Boot 构建你会怎么设计接口层、服务层和异常处理燕双非我会先用 Spring Boot 快速搭接口Controller 接收商品信息Service 里调 AI 生成文案异常就统一用全局异常处理。比如参数不合法返回 400AI 超时返回兜底文案。这样前后端都比较好对接。面试官思路还可以至少知道分层和兜底。那如果这个接口要支撑高并发你会优先考虑什么燕双非嗯……先加缓存吧。热点商品的生成结果可以放 Redis避免每次都打到 AI 服务。还有异步化用户先拿任务 ID生成完再通知。面试官不错已经开始有业务意识了。那你觉得 Redis 里适合缓存什么TTL 怎么定燕双非商品基础信息、生成结果、热门模板都可以缓存。TTL 我一般看业务文案结果可能 10 分钟到 1 小时商品基础信息可以更长一点。热点数据还可以加随机过期防止雪崩。面试官可以说明你不是只会背概念。面试官那我们再往下走生成文案后要写入数据库并发消息到 Kafka通知下游审核系统。你会怎么保证“写库”和“发消息”尽量一致燕双非这个……我知道有事务和消息队列一起搞可能要用什么本地消息表先写库再写消息表后台定时补偿。Kafka 那边我会尽量保证幂等消费。面试官回答得比较接近实战了继续保持。第二轮中间件、鉴权与链路治理面试官现在这个服务要接入 Spring Security JWT要求只有运营和审核角色能访问审核接口。你会怎么设计认证与授权燕双非登录后签发 JWT里面放用户 ID、角色、过期时间。请求进来先验签再根据角色判断能不能访问接口。审核接口就加角色校验比如 ADMIN、AUDITOR。面试官对JWT 适合无状态认证。那如果 token 被盗了怎么降低风险燕双非可以缩短过期时间再配合刷新 token。高风险操作加二次校验比如短信或者企业内部统一登录。还可以做黑名单但黑名单要考虑存储和失效。面试官很好已经有安全意识了。面试官审核系统和生成系统通过 Kafka 解耦。你会怎么设计消息格式JSON、Protobuf 还是 Avro为什么燕双非如果是内部系统我可能会选 Protobuf体积小、性能好字段也比较明确。JSON 调试方便但消息大一些。Avro 更适合有 schema 管理的场景。要是团队里排障多我会先考虑可读性和演进成本。面试官这个回答不错能结合场景权衡不是只说“性能最好”。面试官如果 Kafka 消费端出现重复消费你怎么处理燕双非消费端做幂等。比如用业务唯一键做去重数据库加唯一索引或者 Redis 记录消息处理状态。反正别让同一个订单文案被审核两次不然审核同事会骂人。面试官说得很接地气。那链路监控你会怎么做燕双非用 Micrometer 打点Prometheus 收集Grafana 看图。关键接口加耗时、成功率、Kafka 堆积量、Redis 命中率。再配合日志和 Trace ID 方便排查。面试官很好说明你知道线上系统不能只靠“我感觉没问题”。第三轮深入架构与 AI 落地面试官现在业务升级了不只是生成商品文案还要做“企业知识库问答 智能客服”。你会怎么把 RAG 和现有 Java 服务结合起来燕双非我会先把企业文档做切分、清洗、向量化存到向量数据库里比如 Milvus 或者 Redis 向量检索。用户提问后先做语义检索召回相关片段再把检索结果和问题一起拼进提示词交给大模型生成答案。这样比直接让模型瞎猜靠谱。面试官不错你已经说到了 RAG 的核心流程。那如果检索到的内容很多提示词怎么控制燕双非这个……就做个摘要吧挑最相关的几段。还可以按分数截断或者先做 rerank。提示词太长的话大模型也会看花眼。面试官回答方向对。那你怎么避免 AI 幻觉燕双非第一检索内容要尽量准第二提示词里明确要求“仅根据资料回答不确定就说不知道”第三答案要做后处理比如引用来源、置信度阈值、敏感问题转人工。客服场景里胡说八道比不回答更危险。面试官这个点很重要说明你理解业务风险。面试官最后一个问题如果这个系统要接入 Agent 和工具调用你会怎么理解“工具执行框架”和“扩展能力”燕双非我理解 Agent 就像一个会安排任务的“项目经理”它会根据用户目标决定调用哪些工具比如查订单、查库存、查知识库。工具执行框架就是把这些能力标准化统一输入输出、权限、超时、重试和审计。扩展能力就是以后新增工具不用重写主流程直接注册进来就行。面试官这个比喻还挺形象。整体上你对业务链路、消息、缓存、安全和 AI 落地都有一定理解。面试官今天先到这里你回去等通知吧。详细解析所有问题逐题拆解1. Spring Boot 电商 AIGC 服务如何分层设计在电商 AIGC 场景中接口层负责参数接