
Java 大厂面试实战Spring Boot Kafka Redis Docker/Kubernetes 下的电商秒杀系统场景互联网大厂 Java 求职者面试 / 电商场景 / 严肃面试官 vs 水货程序员燕双非第一轮基础架构与高并发入口面试官你们做电商秒杀前端下单请求进来后Spring Boot 怎么设计接口保证响应快一点燕双非我一般先用 Spring MVC 写个下单接口参数校验用 JSR-303返回统一 JSON。然后把核心逻辑拆到 Service 层接口尽量薄一点。面试官那还不错接口分层清晰。那如果要把接口文档和联调规范也一起做了你会怎么选工具燕双非可以用 Swagger/OpenAPI顺手把 DTO 注解写全前后端联调会方便一些。面试官秒杀流量大商品详情页还要查库存、查活动价、查用户是否已购买。你会考虑哪些缓存燕双非Redis 肯定要上热点商品信息可以做 Spring Cache如果本地要更快我还会加 Caffeine 做一级缓存。面试官可以至少知道冷热分层缓存。那如果 Redis 挂了系统怎么兜底燕双非……这个嘛理论上可以降级页面先返回“活动火爆请稍后再试”核心是别把主链路拖死。第二轮消息削峰与订单一致性面试官现在请求量很大秒杀下单不能同步写库。你会怎么做削峰燕双非我会把下单请求先发到 Kafka前台先快速返回“排队中”后端消费者慢慢处理订单创建。面试官不错。那 Kafka 消费成功后库存扣减、订单落库、发通知这几个动作怎么保证一致性燕双非这个……可以先扣 Redis 库存再写数据库。至于一致性我会尽量让流程幂等失败就重试重复消息靠业务唯一键挡一下。面试官思路有了但不够完整。Kafka 重试、重复消费、消息积压都可能出现你会怎么设计幂等和补偿燕双非可以用订单号做幂等键MyBatis 插入订单时加唯一索引库存扣减可以用乐观锁或者 Lua 脚本原子扣减。失败消息进死信队列人工或定时任务补偿。面试官好开始像个做过事的人了。那如果要观察这条链路的延迟和失败率你会接什么监控燕双非Prometheus 采集指标Grafana 看大盘Micrometer 做应用埋点。链路追踪可以接 Zipkin 或 Jaeger方便看消息在各个服务间耗时。第三轮安全、容灾与上线治理面试官秒杀活动前运营同学要发布活动配置你怎么做权限控制燕双非可以用 Spring Security 做登录认证再配合 JWT 保存用户身份。管理后台可以细一点做角色权限控制。面试官如果这个活动还要给外部合作方调用你会怎么开放 API燕双非可以做 OAuth2 授权合作方拿到 token 后访问接口。文档还是用 OpenAPI签名和限流也要加上。面试官不错。那系统上线时怎么保证配置和数据库版本不出问题燕双非可以用 Flyway 做数据库版本管理配合 Jenkins Docker Kubernetes 做 CI/CD。上线前先走测试环境再灰度发布。面试官如果秒杀活动中途发现某个版本有问题要快速回滚你会怎么处理燕双非容器镜像保留历史版本Kubernetes 回滚到上一版。数据库变更尽量向前兼容必要时先用开关隐藏新逻辑。面试官行今天先到这儿你回家等通知吧。问题详解1. Spring Boot Spring MVC 秒杀接口如何设计电商秒杀场景下接口要尽可能轻量。通常做法是控制层只负责参数接收、校验、返回结果。核心业务放到 Service 层减少控制器复杂度。对活动商品、库存、用户购买状态等高频数据做缓存。对下单请求进行限流、排队、降级。如果采用 Spring Boot配合统一异常处理、参数校验和 DTO 分层能提升接口可维护性。2. Redis Caffeine Spring Cache 在热点数据场景怎么配合Redis 适合分布式缓存适合存商品库存、活动配置等共享数据Caffeine 适合单机本地缓存延迟更低Spring Cache 则提供统一抽象。常见模式是本地缓存兜底 Redis再往下查数据库。这样既减少 Redis 压力也降低热点访问延迟。3. 为什么秒杀系统适合用 Kafka 削峰Kafka 适合高吞吐、可扩展的消息处理场景。秒杀入口把请求写入 Kafka 后前台可以立即返回“排队中”把瞬时高峰转化为后台可控消费。这样可以保护数据库避免请求直接打爆订单表和库存表。4. 如何处理消息重复消费和幂等消息队列在网络抖动、重试、消费超时等情况下重复消费是常态因此业务必须幂等。常见手段包括用订单号、请求流水号做唯一键。数据库加唯一索引。库存扣减使用乐观锁或原子脚本。消费者记录处理状态重复消息直接忽略。这是大厂面试里非常高频的考点。5. Prometheus、Grafana、Micrometer、Zipkin/Jaeger 怎么组合Micrometer 负责在应用中采集指标并暴露给监控系统Prometheus 定时拉取指标Grafana 用于展示仪表盘Zipkin 或 Jaeger 用于分布式链路追踪。对于秒杀系统这套组合可以观察接口耗时、消息堆积、消费延迟、错误率以及链路瓶颈。6. Spring Security JWT OAuth2 在电商管理后台和开放 API 中怎么用管理后台通常使用 Spring Security 做认证和授权JWT 用于无状态身份传递对外开放接口常通过 OAuth2 做授权合作方拿到 access token 后调用受保护资源。配合签名、限流、审计日志可以提升安全性。7. Flyway、Jenkins、Docker、Kubernetes 如何保障上线质量Flyway 负责数据库脚本版本化确保每次发布的表结构变更可追踪、可回滚Jenkins 负责构建和流水线编排Docker 保证运行环境一致Kubernetes 支持灰度发布、滚动更新和快速回滚。对于高并发活动系统上线必须强调“可控”和“可恢复”。8. 面试中的加分点是什么不是只会背技术名词而是能把技术和业务串起来为什么要缓存、为什么要异步、为什么要幂等、为什么要监控、为什么要可回滚。真正的答案永远是围绕“高并发、稳定性、可观测性、可恢复性”展开。感谢阅读希望这篇面试实战文章能帮助大家更好地准备 Java 大厂面试祝你们都能拿到理想的 offer