尧图精选

Java面试实录:Spring Boot + Kafka + Redis + RAG,在互联网大厂电商场景里和燕双非过招

🕒 发布时间:2026/9/1 16:42:46 📁 来源:尧图网络
Java面试实录Spring Boot Kafka Redis RAG在互联网大厂电商场景里和燕双非过招本文以互联网大厂电商业务为背景模拟严肃面试官与搞笑的水货程序员燕双非之间的三轮面试问答。问题从基础到深入围绕 Java、Spring Boot、Kafka、Redis、Spring Security、Elasticsearch、Maven、JUnit 5、Docker、Kubernetes、RAG 等技术展开。前半部分是面试实录后半部分是每道题的详细解析帮助你理解真实大厂面试中的追问路径和考察重点。第一轮电商订单链路与基础技术问题 1你先说说电商下单接口为什么常常用 Spring Boot 来做而不是传统的 SSM燕双非因为 Spring Boot 启动快配置少集成方便。做电商下单接口这种业务直接引入 Web、Validation、MyBatis、Redis 这些依赖基本就能快速跑起来不用写太多 XML。面试官回答得还可以。那如果订单接口要求高并发你觉得 Spring Boot 本身解决了什么没解决什么燕双非它主要解决了工程化和装配问题。高并发还是得靠数据库、缓存、消息队列和限流这些手段。问题 2下单成功后要异步发消息给库存系统和营销系统你会选 Kafka 还是 RabbitMQ为什么燕双非如果是电商这种高吞吐场景我会偏 Kafka。它适合日志流、埋点、订单事件流这种场景吞吐量高分区扩展也方便。RabbitMQ 更适合业务路由复杂、需要灵活投递的场景。面试官嗯这个区分说得不错。那如果出现消息重复消费你准备怎么处理燕双非我会给消息加唯一业务键比如订单号消费者落库前先做幂等校验避免重复扣库存或者重复发券。问题 3购物车和秒杀活动里Redis 通常放什么数据燕双非购物车可以放用户的商品列表、数量、选中状态。秒杀场景里可以放库存预热数据、活动资格、用户是否抢购过的标记还可以用 Redis 做分布式锁或限流。面试官回答完整继续保持。那 Redis 里这些数据的过期策略你怎么设计燕双非活动资格类通常跟活动周期一致设置 TTL购物车可以长一点用户长期未操作再清理抢购标记一般按业务窗口期设置避免脏数据长期占用内存。问题 4如果你要给订单接口加鉴权Spring Security 和 JWT 怎么配合燕双非前端登录后拿到 JWT请求时带上 token。后端 Spring Security 在过滤器里解析 JWT校验签名和过期时间再把用户信息放进上下文后面的接口就能按角色授权了。面试官可以至少说明白了链路。那你知道 JWT 的缺点吗燕双非它一旦签发后服务端不好主动让它失效所以一般要配合短 token 和刷新机制或者加黑名单。第二轮订单履约、检索与数据一致性问题 1订单创建后要同步写 MySQL再发 Kafka再更新 Elasticsearch你怎么保证一致性燕双非这个……我会尽量把主链路放在数据库事务里先落订单主表。然后消息发送用事务消息或者本地消息表保证数据库和消息最终一致。ES 的更新可以通过消费订单事件异步完成。面试官思路有了。那为什么不直接在事务里同步更新 Elasticsearch燕双非因为 ES 是搜索系统不适合强事务同步调用会拉长主链路耗时还会增加失败面。问题 2为什么订单列表查询有时候要用 Elasticsearch而不是直接查数据库燕双非因为订单筛选条件比较多比如订单号、手机号、商品名、状态、时间范围甚至模糊搜索ES 更适合多字段组合检索和分页查询体验更好。面试官那如果 ES 和 MySQL 数据不一致用户查到旧数据怎么办燕双非一般会做最终一致性设计关键链路以 MySQL 为准ES 作为查询加速层。必要时可以做重建索引、补偿任务和数据对账。问题 3你在项目里会怎么用 MyBatis为什么不是 JPA燕双非电商项目里很多 SQL 需要精细优化比如订单联表、分页、条件搜索、批量更新。MyBatis 可控性更强适合写明确 SQL。JPA 更偏对象关系映射开发快但复杂 SQL 有时不够直观。面试官可以。那 MyBatis 的分页和批量更新你会注意什么燕双非分页要避免深分页性能差最好用游标或基于索引的方式。批量更新要注意 SQL 长度、事务大小和锁竞争。问题 4如果要在订单系统里引入 Spring Cache你会缓存什么燕双非可以缓存商品详情、类目、配置、用户收货地址这些读多写少的数据。订单状态这种强一致内容要谨慎缓存或者设置很短的 TTL并且采用主动失效。面试官很好。那缓存穿透、击穿、雪崩怎么处理燕双非穿透可以用布隆过滤器或者缓存空值击穿可以用互斥锁或逻辑过期雪崩可以给缓存加随机过期时间、分批失效、限流降级。第三轮AI 导购、工程化与稳定性问题 1如果我们给电商平台加一个 AI 导购助手你会怎么结合 RAG 和 Spring AI燕双非我会把商品知识、活动规则、售后政策、FAQ 这些文档做文档加载和切片生成向量后存到向量数据库比如 Milvus 或 Redis 向量检索。用户提问时先做语义检索再把检索结果拼到提示词里让大模型基于企业知识回答。Spring AI 可以把模型调用、工具执行、提示模板这些能力封装起来方便在 Java 项目里落地。面试官不错已经接近实战了。那你怎么避免 AI 幻觉燕双非一方面要限制回答来源只基于检索到的企业文档另一方面要做答案置信度控制
上一篇/下一篇内容由系统自动关联 返回资讯列表 →