Spring Boot + Kafka + Redis:互联网大厂 Java 面试实战 3 轮问答(燕双非版) 📅 发布时间:2026/8/31 9:50:05 👁 浏览次数: Spring Boot Kafka Redis互联网大厂 Java 面试实战 3 轮问答燕双非版场景互联网大厂 Java 求职面试。人物严肃面试官、搞笑水货程序员燕双非。第一轮电商秒杀与基础架构面试官你先说说Spring Boot 在秒杀系统里最核心的价值是什么燕双非启动快配置少直接把业务代码拉起来像拧螺丝一样省事。面试官说得不错。那如果秒杀接口要限流、熔断你会怎么做燕双非限流我知道别让用户一窝蜂冲进来像食堂开饭。我可能用 Spring Cloud Resilience4j关键接口做限流和熔断。面试官可以至少方向是对的。那库存扣减为什么不能直接查数据库再更新燕双非因为数据库会被拍扁。一般先用 Redis 做预扣库存扛住高并发再异步落库。面试官继续说Redis 预扣库存怎么避免超卖燕双非用 Lua 脚本吧原子性强一点不然多个请求一起改库存容易翻车。第二轮订单异步化与消息队列面试官你刚才提到异步落库为什么常用 Kafka不直接同步写订单库燕双非同步写太慢用户会等到怀疑人生。Kafka 可以削峰填谷前端先返回“抢购成功排队中”后端慢慢处理。面试官那 Kafka 消息重复消费怎么办燕双非这个……可以做幂等像订单号去重。消费者落库前先查一下有就别重复插了。面试官除了查库你还能怎么做幂等燕双非嗯……可以用唯一索引、Redis 去重标记、消息业务键反正别让它重复干活。面试官很好。那如果订单创建后还要发短信、发券、通知风控你会怎么设计燕双非Kafka 多个 topic 分发或者一个主事件出来后各个下游消费者订阅。像流水线一样分工。面试官如果其中一个下游慢系统怎么保证不被拖死燕双非我会给消费者做重试和死信处理再配合监控告警不然问题藏不住。第三轮安全、观测与 AI 增强面试官支付场景里Spring Security 和 JWT 你怎么配合燕双非登录后签发 JWT后续请求带 tokenSpring Security 负责鉴权。支付接口再加更严格的权限控制。面试官如果 token 被盗了怎么办燕双非嗯……缩短有效期、加刷新机制必要时做黑名单。高危操作还可以二次验证。面试官不错。那系统上线后如何快速定位接口慢、消息堆积、缓存命中率下降燕双非Prometheus Grafana 看指标Micrometer 打点日志进 ELK链路追踪用 Jaeger 或 Zipkin。面试官最后一个问题假如你要在客服系统里引入 Spring AI 做智能问答怎么避免 AI 幻觉燕双非这个我懂一点。可以做 RAG先从企业知识库检索再让模型回答最好限制它只能引用检索到的内容不然它容易一本正经地胡说八道。面试官思路有了细节还要继续补。今天就先到这你回家等通知吧。问题详解结合电商、支付与智能客服场景1. Spring Boot 在秒杀系统中的价值在高并发电商场景中Spring Boot 的核心价值不是“更快写代码”这么简单而是提供快速构建、统一配置、便于集成监控与中间件的能力。对于秒杀这种高峰极端集中的业务开发团队需要尽快把限流、鉴权、缓存、消息队列、监控告警等能力拼装起来Spring Boot 能显著降低工程化成本。2. 限流、熔断与降级秒杀接口常配合 Spring Cloud Resilience4j 做限流和熔断。当流量超过系统处理能力时限流可以直接拒绝部分请求当下游服务异常时熔断可以快速失败防止级联故障。业务上通常会返回“排队中”“系统繁忙请稍后再试”等提示。3. Redis 预扣库存与 Lua 原子性高并发抢购不能直接用数据库实时扣库存因为数据库锁竞争和写放大容易拖垮系统。常见方案是先把库存放入 Redis通过 Lua 脚本完成“判断库存是否足够 扣减库存 写入抢购标记”的原子操作避免并发超卖。Redis 适合作为高性能临时状态承载层而数据库负责最终一致性落库。4. Kafka 削峰填谷与异步化抢购成功后订单创建、发券、通知风控、发短信等动作不应全部同步完成。Kafka 可以把前端请求与后端复杂流程解耦先返回受理结果再由消费者异步处理。这样既提升响应速度也避免某个下游慢导致整体阻塞。对于订单、库存、营销等不同职责通常会设计不同 topic 或事件流。5. 消息幂等与重复消费Kafka 默认语义下重复消费是必须面对的问题。应通过业务幂等来解决例如订单号唯一索引、消费记录表、Redis 去重键、状态机校验等。原则是“同一业务事件执行多次结果仍然一致”。6. 支付场景中的 Spring Security JWT在支付、账户、提现等高敏感业务中JWT 常用于无状态认证Spring Security 负责统一鉴权与权限控制。JWT 应尽量短时有效并配合刷新机制、黑名单和高危操作二次验证。支付接口通常还要结合风控策略、IP 限制、设备指纹、行为校验等手段。7. 监控、日志与链路追踪线上问题定位要靠可观测性体系。Prometheus 采集指标Grafana 展示看板Micrometer 统一埋点ELK 负责日志检索Jaeger/Zipkin 跟踪调用链。这样可以快速发现接口慢、缓存击穿、消息积压、线程池耗尽等问题。8. AI 客服中的 RAG 与幻觉控制企业客服引入 Spring AI 时不能直接让大模型“自由发挥”。更稳妥的方式是采用 RAG先把企业文档、FAQ、工单知识库向量化存入向量数据库再通过语义检索召回相关内容最后把检索结果连同问题一起送给模型生成回答。通过限定模型依据检索内容回复可以显著降低 AI 幻觉。对于企业文档问答、复杂工作流、智能客服系统RAG 是非常实用的落地路径。9. 面试回答的关键点面试中不仅要说出技术名词更要说清楚“为什么这么设计、解决了什么业务问题、有什么边界条件”。比如 Redis 不是万能数据库Kafka 也不是天然可靠事务系统回答时要体现对高并发、最终一致性、幂等、可观测性和安全性的理解。感谢阅读希望这篇文章能帮助你在互联网大厂 Java 面试中更从容地应对高频问题也希望能给你的项目设计和技术沉淀带来一些启发。