2026年Java实习面试中,微服务相关题目占比从去年的15%飙升到30%+。Spring Cloud Alibaba已成为国内主流微服务技术栈——Nacos、Sentinel、Seata是面试必考。本文精选10道高频题,每道都附带标准答案。
核心机制:Nacos采用 临时实例(AP) 和 持久实例(CP) 双模式。
• 临时实例:服务启动→向Nacos注册→维持心跳(5秒)→Nacos 15秒没收到心跳→剔除实例。基于Distro协议,保证AP(可用性+分区容错)。
• 持久实例:服务启动→注册→Nacos持久化存储。基于Raft协议,保证CP(一致性+分区容错)。适合对一致性要求高的场景。
面试亮点:"Nacos其实比Eureka强——它不仅做注册中心,也是配置中心。Netflix把Spring Cloud Netflix捐给Apache后,国内企业全面迁移到Nacos。"
Sentinel默认使用滑动窗口算法:将时间窗口切分为多个小窗口,每个窗口独立计数。相比固定窗口避免了"突刺"问题。
• QPS模式:每秒请求数超过阈值→拒绝。适合保护下游服务。
• 并发线程数模式:同一时刻处理的请求数超过阈值→拒绝。适合保护慢调用。
Sentinel vs Guava RateLimiter:RateLimiter是单机令牌桶,Sentinel支持集群流控+控制台实时调整,生产环境更实用。
Feign(声明式HTTP客户端):
• Spring Cloud原生支持,基于HTTP/JSON
• 集成Ribbon负载均衡 + Sentinel熔断
• 适合:跨语言调用、对外开放API、简单RESTful场景
Dubbo(RPC框架):
• 阿里开源,基于TCP + 自定义协议
• 性能更高(二进制传输),服务治理更完善
• 适合:纯Java微服务、高并发内部调用、需要服务分组/版本路由
一句话选型:对外用Feign/RestTemplate,对内高并发用Dubbo。
Spring Cloud Gateway基于WebFlux(响应式编程),性能比Zuul高3-5倍:
• 路由转发:根据Path/Host/Header转发到不同微服务
• 统一鉴权:在Gateway层校验JWT Token,下游服务不需要重复鉴权
• 限流:集成Redis + RequestRateLimiter
• 跨域处理:统一配置CORS
• 负载均衡:集成Spring Cloud LoadBalancer
spring:
cloud:
gateway:
routes:
- id: seckill
uri: lb://seckill-service
predicates:
- Path=/seckill/**
Seata AT模式 = 两阶段提交的改良版:
① 一阶段:各服务执行本地事务 + 记录undo_log(回滚日志)。
② 二阶段-提交:TC通知所有RM删除undo_log,释放锁。
③ 二阶段-回滚:TC通知RM根据undo_log做反向补偿。
核心优势:对业务代码无侵入,只需加@GlobalTransactional注解。
面试陷阱:"AT模式依赖数据库的ACID,如果用的是Redis+MongoDB组合,需要用TCC模式(Try-Confirm-Cancel)。"
application.yml的问题:
• 修改配置需要重新打包部署(CI/CD流水线10-30分钟)
• 多环境(dev/test/prod)管理混乱
• 敏感信息(密码/密钥)暴露在代码仓库
Nacos配置中心解决:
• 动态刷新:修改配置后秒级生效(@RefreshScope)
• 环境隔离:namespace区分dev/prod
• 灰度发布:按标签推送不同配置
• 版本回滚:配置历史可追溯
服务雪崩:A→B→C,C挂了→B的线程池打满→A调用B超时→A也挂了→整个链路崩溃。
三层防护(Sentinel实现):
① 限流:QPS阈值保护。每秒最多处理N个请求。
② 熔断:慢调用比例>50%→打开断路器→快速失败→半开探测→恢复。
③ 降级:返回兜底数据(如"活动太火爆"页面),而不是直接报错。
2026年国内企业事实标准:
| 组件 | Netflix(已停止维护) | Alibaba(主流) |
|---|---|---|
| 注册中心 | Eureka | Nacos |
| 限流熔断 | Hystrix | Sentinel |
| 网关 | Zuul | Gateway |
| 配置中心 | Config | Nacos |
| 分布式事务 | 无 | Seata |
常见算法:
• 轮询(RoundRobin):依次分配,默认算法。适合服务器性能一致。
• 随机(Random):随机选一台。
• 加权(Weighted):性能好的机器权重高。
• 最小连接数:选当前连接最少的机器。
• 一致性哈希:相同用户请求打到同一台(适合有状态服务)。
2026年:Spring Cloud LoadBalancer已替代Ribbon(Ribbon进入维护模式)。
以秒杀项目为例的标准回答:
"我的微服务秒杀项目使用Spring Cloud Alibaba全家桶。Nacos做服务注册发现和配置中心(动态刷新不用重启),Gateway统一鉴权路由到seckill-service,Sentinel在入口做QPS限流(防止流量尖刺),Seckill服务里用Redis Lua脚本原子扣库存,扣成功发RocketMQ异步落库削峰。整个架构能支撑QPS 5000+,库存0超卖。"
—— 这个回答覆盖了5个核心组件,面试官会立刻觉得你有真实微服务经验。
免费工具+面试题库,都是我一点一点写的。如果帮到了你,请我喝杯咖啡吧~
微信扫码赞赏 · 你的支持是我更新的动力 🙏