)
✅ 精选100题拒绝凑数按模块分类每题含核心考点避坑提示文末领PDF“背完这100题面试官追问3轮仍稳如泰山” 使用指南1️⃣标⭐为高频必考题出现率80%2️⃣ 每题含✅核心考点 ⚠️避坑提示3️⃣ 按模块分类查漏补缺超高效4️⃣文末送高清PDF版含详细解析思维导图 一、服务注册与发现15题⭐ SpringCloud常用注册中心有哪些如何选型✅ 核心Eureka(AP)、Nacos(双模)、Zookeeper(CP)、Consul⚠️ 避坑不说“Eureka淘汰”说“新项目首选Nacos功能全活跃”⭐ 为什么Eureka设计为AP系统✅ 核心客户端缓存注册表注册中心挂掉仍可调用服务⚠️ 避坑对比ZookeeperCP选举期间服务不可用风险Nacos如何实现AP/CP模式切换✅ 核心curl -X PUT $NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entryserverModevalueCP⚠️ 避坑服务发现用AP配置管理用CPEureka自我保护机制原理生产环境要开吗✅ 核心网络故障时保护注册表避免误删健康实例⚠️ 避坑测试环境关快速发现问题生产环境开防雪崩服务注册慢如何优化✅ 核心调小lease-renewal-interval-in-seconds心跳间隔⚠️ 避坑过小增加注册中心压力建议30秒→15秒多网卡环境下服务注册IP错误怎么办✅ 核心eureka.instance.preferred-networks192.168指定网段⚠️ 避坑K8s环境用status.hostIP获取真实IPNacos集群部署关键配置✅ 核心cluster.conf配置节点列表 MySQL主从⚠️ 避坑至少3节点避免脑裂服务下线后调用方仍能访问✅ 核心客户端缓存未更新Eureka默认30秒拉取⚠️ 避坑调用前加熔断或缩短registry-fetch-interval-seconds如何实现服务优雅下线✅ 核心Actuator端点/shutdown 网关摘流量⚠️ 避坑K8s用preStop钩子延迟30秒注册中心宕机服务还能调用吗✅ 核心能客户端缓存注册表Eureka默认90秒有效⚠️ 避坑强调“缓存机制是微服务高可用基石”Nacos vs Eureka核心差异✅ 核心Nacos支持配置中心服务发现Eureka仅服务发现⚠️ 避坑提Nacos控制台实时管理优势如何防止测试服务注册到生产环境✅ 核心Nacos用命名空间隔离Eureka用spring.cloud.config.profile⚠️ 避坑配置文件加密权限管控服务实例状态如何自定义✅ 核心实现HealthIndicator接口返回UP/DOWN⚠️ 避坑避免频繁状态变更导致注册中心抖动多版本服务如何共存✅ 核心Nacos元数据 Gateway路由规则如version1.0⚠️ 避坑灰度发布需配合流量染色为什么微服务不用DNS做服务发现✅ 核心DNS TTL长分钟级无法实时感知服务上下线⚠️ 避坑K8s中Service用DNS但底层仍是Endpoints动态更新 二、服务调用Feign/Ribbon10题⭐ OpenFeign和Feign区别✅ 核心OpenFeign是SpringCloud维护版整合RibbonHystrix⚠️ 避坑Feign已停更新项目用OpenFeign⭐ Feign超时如何配置✅ 核心feign: client: config: default: connectTimeout: 3000 readTimeout: 5000⚠️ 避坑超时时间需小于Hystrix熔断时间Feign如何开启GZIP压缩✅ 核心feign.compression.request.enabledtrue⚠️ 避坑小报文1KB压缩反而增耗时Feign调用如何传递Token✅ 核心实现RequestInterceptor从Header取Token透传⚠️ 避坑敏感信息脱敏避免日志泄露Feign重试机制原理✅ 核心Retryer接口默认不重试幂等接口才开⚠️ 避坑下单/支付类接口禁用重试如何替换Feign底层HTTP客户端✅ 核心引入feign-okhttp配置feign.okhttp.enabledtrue⚠️ 避坑OkHttp连接池需调优Feign日志级别怎么选✅ 核心NONE生产环境BASIC调试仅方法状态码FULL本地开发含请求体⚠️ 避坑FULL级别生产环境OOM警告Feign如何支持文件上传✅ 核心RequestPartMultipartFile需加consumes MediaType.MULTIPART_FORM_DATA_VALUE⚠️ 避坑大文件用分片上传Ribbon负载均衡策略有哪些✅ 核心RoundRobin默认、Random、WeightedResponseTime⚠️ 避坑自定义策略需实现IRuleRibbon饥饿加载如何配置✅ 核心ribbon.eager-load.enabledtrue 指定clients⚠️ 避坑避免启动时首次调用超时 三、服务容错Hystrix/Sentinel15题⭐ Hystrix停更后新项目用什么✅ 核心Sentinel动态规则集群流控或 Resilience4j云原生⚠️ 避坑旧项目维护用Hystrix但要有迁移计划⭐ Sentinel核心优势✅ 核心控制台实时改规则无需重启集群流控多节点协同热点参数限流⚠️ 避坑对比Hystrix“改配置需重启”的痛点熔断、降级、限流区别✅ 核心限流入口拦截防洪熔断快速失败保下游降级兜底返回保体验⚠️ 避坑三者组合使用非二选一Sentinel如何实现集群流控✅ 核心Token Server分配令牌Client申请⚠️ 避坑Token Server需高可用部署Hystrix线程池隔离 vs 信号量隔离✅ 核心线程池适合慢调用网络IO信号量适合快调用内存操作⚠️ 避坑信号量无法设置超时熔断器状态机流转✅ 核心关闭→打开失败率超阈值→半开尝试恢复→关闭⚠️ 避坑半开状态需谨慎设置尝试次数如何自定义Sentinel降级策略✅ 核心实现BlockExceptionHandler返回友好提示⚠️ 避坑降级逻辑避免复杂计算热点参数限流适用场景✅ 核心防刷如用户ID限流、防爬IP限流⚠️ 避坑参数需加SentinelResource注解Hystrix Dashboard监控原理✅ 核心Turbine聚合各服务metricsWebSocket推送⚠️ 避坑Turbine需配置instanceUrlSuffixSentinel规则持久化方案✅ 核心推模式Nacos/Apollo vs 拉模式文件⚠️ 避坑生产环境用推模式避免规则丢失什么场景不适合熔断✅ 核心核心链路如支付应重试而非熔断⚠️ 避坑熔断是“止损”非“万能药”如何监控熔断触发频率✅ 核心Sentinel Dashboard看“Block QPS或接入Prometheus⚠️ 避坑设置告警阈值如1分钟触发10次Resilience4j相比Hystrix优势✅ 核心轻量无额外线程池、函数式编程、SpringBoot3友好⚠️ 避坑生态不如Sentinel成熟服务降级返回什么数据✅ 核心缓存数据、默认值、友好提示如“服务繁忙”⚠️ 避坑避免返回空或异常堆栈如何验证熔断生效✅ 核心压测工具模拟异常观察Dashboard熔断计数⚠️ 避坑混沌工程演练如ChaosBlade注入故障 四、API网关Gateway/Zuul10题⭐ Gateway为什么比Zuul 1.x快✅ 核心WebFlux非阻塞 vs Servlet阻塞IO⚠️ 避坑提压测数据1000并发Gateway 300ms vs Zuul 1200ms⭐ Gateway核心过滤器类型✅ 核心GlobalFilter全局GatewayFilter路由级⚠️ 避坑执行顺序按Ordered接口排序如何实现JWT鉴权✅ 核心自定义GlobalFilter解析Token校验签名⚠️ 避坑Token过期时间校验 黑名单机制网关如何防刷✅ 核心Sentinel网关流控 IP黑名单 验证码⚠️ 避坑防刷规则动态可调大促期间放宽Gateway路由配置方式✅ 核心YML配置、Java代码、Nacos动态路由⚠️ 避坑动态路由需监听Nacos配置变更如何实现灰度发布✅ 核心Gateway路由 元数据如versiongray Header染色⚠️ 避坑灰度流量需监控异常快速切回网关层如何记录链路TraceID✅ 核心GlobalFilter生成TraceID放入Header透传⚠️ 避坑TraceID需全局唯一雪花算法Gateway跨域配置✅ 核心spring: cloud: gateway: globalcors: corsConfigurations: [/**]: allowedOrigins: * allowedMethods: *⚠️ 避坑生产环境限制allowedOrigins为可信域名网关内存溢出排查思路✅ 核心检查连接数netstat分析堆内存jmap检查大文件上传⚠️ 避坑设置合理的超时时间和缓冲区大小Zuul 2.x和Gateway怎么选✅ 核心Gateway生态更活跃Zuul 2.x社区弱新项目闭眼Gateway⚠️ 避坑已有Zuul 1.x项目评估迁移成本 五、配置中心Config/Nacos10题⭐ Nacos vs SpringCloud Config✅ 核心能力NacosConfig刷新速度秒级分钟级需Bus权限管理RBAC完善弱多环境命名空间Git分支⚠️ 避坑Config仅适合配置变更极低场景⭐ 配置动态刷新原理✅ 核心Nacos长轮询客户端挂起请求变更时立即响应⚠️ 避坑RefreshScope注解的Bean才会刷新配置加密方案✅ 核心Jasypt加密 自定义EnvironmentPostProcessor解密⚠️ 避坑密钥勿硬编码用KMS托管多环境配置管理最佳实践✅ 核心Nacos命名空间dev/test/prod Data ID带环境标识⚠️ 避坑生产配置变更需审批流程配置中心宕机怎么办✅ 核心客户端本地缓存Nacos默认缓存到/nacos/config⚠️ 避坑启动时加spring.cloud.nacos.config.fail-fastfalse如何实现配置灰度发布✅ 核心Nacos Beta发布功能指定IP列表生效⚠️ 避坑灰度配置需监控异常快速回滚配置文件过大如何优化✅ 核心拆分配置如database.yml, redis.yml 按需加载⚠️ 避坑单配置文件建议100KB配置变更如何审计✅ 核心Nacos操作日志 接入ELK⚠️ 避坑关键配置变更需记录操作人/时间/原因本地调试如何覆盖远程配置✅ 核心bootstrap.yml中spring.cloud.config.override-nonetrue⚠️ 避坑避免误提交本地配置到Git配置中心安全加固措施✅ 核心HTTPS传输访问令牌Access Token敏感配置加密⚠️ 避坑Nacos默认无密码生产环境必开鉴权 六、链路追踪Sleuth/Zipkin/SkyWalking10题⭐ 链路追踪三要素✅ 核心TraceID全局唯一、SpanID单次调用、ParentSpanID父子关系⚠️ 避坑透传需通过HTTP Header如skywalking-trace-id⭐ Zipkin和SkyWalking怎么选✅ 核心Zipkin轻量适合中小项目SkyWalking功能强拓扑图/告警/性能剖析适合中大型⚠️ 避坑SkyWalking Agent无侵入Zipkin需埋点如何自定义Span✅ 核心Tracer.createSpan(custom-span) try-finally关闭⚠️ 避坑避免Span过多导致性能损耗链路数据采样率如何设置✅ 核心spring.sleuth.sampler.probability0.110%采样⚠️ 避坑高流量系统调低采样率关键链路100%采样追踪数据丢失排查思路✅ 核心检查Agent是否启动检查网络连通性检查采样率设置⚠️ 避坑K8s环境注意Sidecar注入如何关联业务日志✅ 核心MDC注入TraceID日志框架输出[%X{traceId}]⚠️ 避坑异步线程需手动传递MDCSkyWalking如何监控JVM✅ 核心Agent自动采集GC/内存/线程指标⚠️ 避坑生产环境开启避免频繁Full GC链路追踪性能损耗✅ 核心Zipkin约3-5%SkyWalking约5-10%可接受⚠️ 避坑压测验证关键服务调低采样率如何定位慢接口✅ 核心SkyWalking拓扑图看耗时节点 → 钻取Span详情⚠️ 避坑结合Arthas在线诊断追踪数据存储选型✅ 核心小数据量H2测试中等MySQL/Elasticsearch大数据量Elasticsearch集群⚠️ 避坑ES需调优分片策略 七、分布式事务Seata10题⭐ Seata三大模式适用场景✅ 核心模式适用避坑AT普通业务订单/库存全局锁避免长事务TCC资金类强一致Confirm/Cancel需幂等Saga长流程物流补偿逻辑复杂⚠️ 避坑AT模式需数据库支持MySQL需undo_log表⭐ AT模式原理✅ 核心解析SQL生成前后镜像全局锁校验提交本地事务异常时用镜像回滚⚠️ 避坑避免大字段更新镜像过大TCC空回滚问题✅ 核心Try未执行时Cancel被调用 → 需记录Try执行状态⚠️ 避坑Cancel逻辑加“是否已Try判断Seata如何保证高可用✅ 核心TC事务协调器集群部署 注册中心发现⚠️ 避坑TC需配置DB高可用分布式事务性能优化✅ 核心异步提交GlobalTransactional(asyncCommit true)减少全局事务范围⚠️ 避坑避免在循环内开全局事务如何监控Seata事务✅ 核心Seata Console看事务状态 接入Prometheus⚠️ 避坑设置异常事务告警Saga模式补偿失败怎么办✅ 核心人工介入 重试机制 告警通知⚠️ 避坑补偿操作需幂等Seata与RocketMQ事务消息区别✅ 核心Seata强一致2PCRocketMQ最终一致事务消息⚠️ 避坑高并发场景优先选事务消息全局锁冲突排查✅ 核心Seata Console看锁等待队列 优化SQL减少锁范围⚠️ 避坑避免跨服务循环调用如何测试分布式事务✅ 核心混沌工程注入故障如Kill TC 验证数据一致性⚠️ 避坑测试环境模拟网络分区 八、安全与认证5题网关层如何统一鉴权✅ 核心GlobalFilter解析JWT 校验签名 权限校验⚠️ 避坑Token刷新机制避免频繁登录OAuth2.0四种模式适用场景✅ 核心授权码Web应用最安全密码自家APP信任客户端客户端凭证服务间调用简化模式纯前端应用已淘汰⚠️ 避坑密码模式需严格管控客户端如何防止Token被盗用✅ 核心绑定设备指纹短有效期 刷新Token异常登录检测⚠️ 避坑HTTPS传输 避免URL传Token微服务间调用如何认证✅ 核心Feign拦截器透传Token 网关校验⚠️ 避坑内部服务用Service Account避免用户Token透传安全漏洞常见防护✅ 核心SQL注入MyBatis #{}XSS前端转义 后端校验越权每次请求校验权限⚠️ 避坑定期安全扫描如SonarQube 九、云原生与K8s整合10题⭐ SpringCloud如何与K8s整合✅ 核心服务发现用K8s Service替代注册中心配置管理ConfigMap SpringCloud Kubernetes⚠️ 避坑K8s接管基础设施SpringCloud专注业务K8s中如何实现配置热更新✅ 核心SpringCloud Kubernetes监听ConfigMap变更 RefreshScope⚠️ 避坑需配置spring.cloud.kubernetes.reload.enabledtrue服务网格Istio vs SpringCloud✅ 核心Istio基础设施层Sidecar代理语言无关SpringCloud应用层框架需代码侵入⚠️ 避坑新项目评估复杂度中小团队SpringCloud更轻量K8s中如何做链路追踪✅ 核心Sidecar注入Agent如SkyWalking 透传TraceID⚠️ 避坑注意Sidecar资源限制微服务在K8s中如何优雅下线✅ 核心preStop钩子延迟30秒从Service Endpoint摘除处理完存量请求⚠️ 避坑livenessProbe和readinessProbe分开配置如何监控K8s中微服务✅ 核心Prometheus采集指标 Grafana看板 AlertManager告警⚠️ 避坑业务指标如订单失败率需自定义暴露K8s中配置敏感信息✅ 核心Secret存储 Volume挂载 or 环境变量⚠️ 避坑Secret需加密存储如Sealed Secrets服务网格如何实现灰度发布✅ 核心Istio VirtualService配置流量权重如v1:90%, v2:10%⚠️ 避坑需配合监控异常快速切回SpringCloud Gateway如何部署到K8s✅ 核心Deployment ServiceNodePort/LoadBalancer Ingress⚠️ 避坑网关需配置资源限制CPU/Memory云原生下配置中心还必要吗✅ 核心K8s ConfigMap适合静态配置动态配置如开关仍需Nacos⚠️ 避坑混合架构ConfigMap存基础配置Nacos存业务配置 十、综合场景与设计5题⭐ 大促前系统加固方案✅ 核心网关层Sentinel限流QPS阈值服务层熔断降级核心链路保护数据层缓存预热 读写分离监控全链路压测 告警预案⚠️ 避坑提前演练避免“纸上谈兵”⭐ 如何排查线上慢接口✅ 核心SkyWalking定位慢服务Arthas在线诊断trace/watch慢SQL分析Explain线程堆栈分析jstack⚠️ 避坑避免直接重启先保留现场微服务拆分过细的征兆✅ 核心调用链过长10跳分布式事务泛滥运维成本高部署/监控复杂⚠️ 避坑按DDD限界上下文拆分非按技术分层如何设计高可用微服务架构✅ 核心多可用区部署服务冗余无单点熔断降级预案混沌工程验证⚠️ 避坑高可用≠高成本按业务等级设计⭐ 面试反问环节问什么✅ 核心“团队当前微服务架构最大的挑战是什么”“技术选型如何平衡创新与稳定性”“新人如何快速融入技术体系”⚠️ 避坑不问薪资加班留到HR面 附高频考点速记表模块必背关键词注册中心Nacos双模、Eureka AP、自我保护服务调用Feign超时、OkHttp、RequestInterceptor容错Sentinel动态规则、集群流控、熔断三态网关WebFlux非阻塞、GlobalFilter、灰度路由配置中心长轮询、RefreshScope、命名空间隔离链路追踪TraceID透传、采样率、SkyWalking拓扑分布式事务AT模式镜像、TCC幂等、Saga补偿云原生K8s Service替代注册中心、ConfigMap热更新 最后叮嘱✅背题不如懂题每道题结合自身项目说例“我们用Sentinel在XX场景...✅诚实是底线不会就说“这块接触少但我的理解是...✅带作品面试手机存架构图/优化数据“这是我画的链路追踪方案”记住面试官要的不是百科全书而是能用技术解决实际问题的人。你踩过的每个坑都是Offer的垫脚石✅转发给正在面试的战友✅收藏本文面试前扫一眼✅评论区留言“上岸”接好运#SpringCloud #微服务面试 #Java面试 #程序员求职 #架构师✨原创不易点赞收藏是对作者最大鼓励✨关注我下期《SpringBoot高频50题从自动配置到启动优化》