Spring Cloud微服务电商秒杀系统面试实战(含缓存、消息队列与分布式事务)
Spring Cloud微服务电商秒杀系统面试实战(含缓存、消息队列与分布式事务)
场景简介
本次面试围绕「电商秒杀系统」展开,候选人谢飞机需要在高并发、分布式架构下,结合Spring Boot、Spring Cloud、Redis、Kafka、分布式事务等技术,设计并实现一个可用、高效的秒杀服务。
角色介绍
- 面试官:严肃相对、专业引导
- 候选人:谢飞机,简单问题能答出,复杂问题含糊其辞
第一轮:Java与构建工具基础
-
面试官:请简要说一下Java 8与Java 11的主要区别,以及它们对GC调优的影响?
谢飞机:Java 8和11在语言特性和模块化方面不同……(回答较完整)。
面试官:很好,你对新特性掌握得不错。
-
面试官:在项目中你更喜欢Maven还是Gradle,为什么?
谢飞机:我习惯用Maven,依赖管理直观,生命周期清晰。(回答简洁)
面试官:Maven确实社区广泛,但Gradle在性能上也有优势,多多了解。
-
面试官:说说JVM内存模型中,Stack和Heap的区别以及它们的典型大小?
谢飞机:Stack存线程私有,Heap存对象,默认Heap可调……(回答完整)。
面试官:不错,基础很扎实。
-
面试官:如果遇到GC频繁导致系统抖动,你会怎么排查?
谢飞机:我会通过jstat、jmap、jconsole分析GC日志和内存快照……(靠谱回答)。
面试官:很好,方法很系统。
第二轮:微服务与高并发设计
-
面试官:在秒杀场景中,为何要使用Spring Cloud,以及它带来了哪些核心组件?
谢飞机:Spring Cloud提供注册中心、负载均衡、配置中心、熔断隔离等。(简要)
面试官:不错,但要结合秒杀高并发特点考虑限流。
-
面试官:请说明如何使用OpenFeign调用库存服务,并做好容错?
谢飞机:定义Feign接口,注解
@FeignClient,结合@HystrixCommand或Resilience4j熔断。(回答到点)。面试官:很好,补充下熔断之后的fallback策略吧。
-
面试官:分布式锁在秒杀中很关键,你能说说Redis实现分布式锁的原理吗?
谢飞机:用SETNX加过期时间,保证原子性……(回答较模糊)。
面试官:嗯,要考虑锁续期和多实例安全性,比如Redisson的RedLock。
-
面试官:如何在高并发下保护数据库?
谢飞机:可以使用缓存预热、限流、降级和异步消息队列……(回答不够深入)。
面试官:思路对,注意细化到Redis和MQ的配合。
第三轮:缓存、消息队列与分布式事务
-
面试官:秒杀过程中,如何使用Redis缓存令牌桶限流?
谢飞机:用Lua脚本原子获取令牌,超过返回失败。(简洁)
面试官:可以再说明一下脚本如何保证原子性吗?
-
面试官:消息队列在解耦峰值削峰上有什么优势?为什么选Kafka而不是RabbitMQ?
谢飞机:Kafka吞吐高、顺序性好,但对于事务消息要慎用。(回答模糊)。
面试官:思路对,注意幂等和消息重试机制。
-
面试官:简述如何在微服务中实现最终一致性的分布式事务?
谢飞机:可以用两阶段提交或TCC模式。(回答过于概念化)。
面试官:结合业务场景补充下Saga模式的处理流程吧。
-
面试官:如何监控整个秒杀链路的性能和调用链?
谢飞机:用Prometheus+Grafana监控指标,Jaeger/Zipkin做调用链追踪。(基础回答)。
面试官:可以再说下自定义metric采集实践吗?
面试官:本次面试到这里,谢谢你,回去等通知。
答案解析与技术点梳理
-
Java 8 vs 11 & GC调优
- 场景:高并发服务下的内存开销控制
- 技术点:模块化(Jigsaw)、新GC(ZGC、G1),jstat/jmap/jconsole排查
-
构建工具选择
- 场景:持续集成与团队协作
- 技术点:Maven依赖管理、Gradle性能优化
-
JVM内存模型
- 场景:OOM与抖动排查
- 技术点:Stack/Heap、Young/Old区、Survivor比例调优
-
GC排查方法
- 场景:线上GC抖动
- 技术点:GC日志分析、heap dump、jvisualvm
-
Spring Cloud 核心组件
- 场景:秒杀服务注册、配置、负载、限流
- 技术点:Eureka/Consul、Config、Ribbon/LoadBalancer、Resilience4j
-
OpenFeign容错
- 场景:库存服务调用失败降级
- 技术点:@FeignClient、FallbackFactory、Resilience4j熔断
-
Redis分布式锁
- 场景:秒杀库存扣减
- 技术点:SETNX+过期、Lua脚本原子、Redisson RedLock
-
高并发保护DB
- 场景:库存超卖&降级
- 技术点:本地缓存预热、限流、降级策略、MQ异步削峰
-
令牌桶限流
- 场景:QPS突增保护
- 技术点:Lua脚本、Redis原子操作
-
MQ削峰
- 场景:异步下单削峰&重试
- 技术点:Kafka高吞吐、分区顺序、幂等生产/消费
- 分布式事务
- 场景:下单-库存-支付一致性
- 技术点:XA、TCC、Saga、事务补偿机制
- 链路监控与追踪
- 场景:秒杀整体性能洞察
- 技术点:Micrometer自定义指标、Prometheus/Grafana、OpenTelemetry/Zipkin
以上内容适合初学者理解秒杀系统架构与关键技术点。
更多推荐


所有评论(0)