当前位置: 首页 > news >正文

SpringCloud面试题(49道含答案)

一、基础概念类

1. 什么是微服务架构?

:微服务架构是一种将单体应用拆分为多个小型、独立、松耦合服务的架构风格。每个服务围绕业务能力构建,可独立开发、部署、扩展,通过轻量级通信(如 HTTP/REST)交互。

2. Spring Cloud 是什么?

:Spring Cloud 是基于 Spring Boot 的微服务工具集,整合了服务注册发现、配置中心、负载均衡、熔断、网关等分布式系统组件,提供开箱即用的解决方案。

3. 为什么使用 Spring Cloud?

  • 简化分布式系统开发;
  • 与 Spring Boot 无缝集成;
  • 封装成熟组件(如 Eureka、Ribbon),屏蔽复杂配置;
  • 支持快速构建高可用、可伸缩的微服务系统。
4. Spring Boot 和 Spring Cloud 的区别?

  • Spring Boot:用于快速开发单个微服务(关注“个体”);
  • Spring Cloud:用于治理多个微服务之间的协作(关注“群体”),如服务发现、配置管理、熔断等;
  • Spring Boot 可独立使用,Spring Cloud 必须依赖 Spring Boot。
5. Spring Cloud 有哪些核心组件?

:Eureka(注册中心)、Config(配置中心)、Ribbon(负载均衡)、Feign/OpenFeign(声明式调用)、Hystrix(熔断)、Zuul/Gateway(网关)、Bus(消息总线)、Sleuth(链路追踪)等。


二、服务注册与发现(Eureka)

6. 什么是服务注册与发现?

:服务启动时向注册中心注册自身信息;其他服务通过注册中心动态查找并调用目标服务,避免硬编码地址。

7. Eureka 是什么?

:Netflix 开源的服务注册中心,Spring Cloud 封装后作为默认注册中心,支持服务注册、心跳续约、故障剔除。

8. Eureka 如何实现高可用?

:部署多个 Eureka Server 节点,互相注册形成集群;客户端配置多个 Eureka 地址,任一节点宕机仍可正常工作。

9. 什么是 Eureka 的自我保护模式?

:当短时间内大量服务失联(如网络分区),Eureka 进入自我保护模式,不再剔除服务实例,防止误删健康服务。网络恢复后自动退出。

10. DiscoveryClient 的作用?

:用于在代码中根据服务名从注册中心获取服务实例列表,常用于手动调用或定制负载逻辑。

11. Eureka 和 ZooKeeper 的区别?

维度EurekaZooKeeper
CAPAP(可用性优先)CP(强一致性)
节点关系对等主从(需选举)
故障容忍网络分区仍可用选举期间不可用
适用场景云环境、高可用优先强一致要求场景

三、负载均衡(Ribbon)

12. Ribbon 是什么?

:Netflix 开源的客户端负载均衡器,集成于 Feign/RestTemplate,从注册中心获取服务列表并按策略(轮询、随机等)选择实例。

13. @LoadBalanced 注解的作用?

:为 RestTemplate 或 WebClient 启用 Ribbon 负载均衡能力。

14. Ribbon 和 Nginx 的区别?

  • Ribbon:客户端负载均衡,与注册中心联动,感知服务上下线;
  • Nginx:服务端反向代理,高性能但无法动态感知服务变化。
15. Ribbon 底层原理?

:通过 DiscoveryClient 获取服务实例列表,使用 IRule 接口实现负载策略(如 RoundRobinRule),结合 HttpClient 发起请求。


四、服务调用(Feign / OpenFeign)

16. 什么是 Feign?

:声明式 HTTP 客户端,通过定义接口 + 注解即可调用远程服务,无需手动构建 HTTP 请求。

17. Feign 和 RestTemplate 的区别?

  • RestTemplate 需手动拼接 URL、处理参数;
  • Feign 通过接口抽象,代码更简洁,天然集成 Ribbon 和 Hystrix。
18. Feign 和 Ribbon 的关系?

:Feign 内部集成了 Ribbon,自动实现负载均衡;也可集成 Hystrix 实现熔断降级。


五、熔断与容错(Hystrix)

19. 什么是服务雪崩?

:一个服务故障导致调用链上其他服务因等待/超时而连锁崩溃的现象。

20. Hystrix 的作用?

:提供熔断、降级、隔离机制,防止雪崩:

  • 熔断:失败率超阈值时快速失败;
  • 降级:返回兜底数据;
  • 隔离:为服务分配独立线程池。
21. 服务降级如何实现?

:重写 HystrixCommand.getFallback() 方法,或在 Feign 中指定 fallback 类。

22. Hystrix 当前状态?

:已停止维护,推荐使用 Resilience4jSentinel 替代。


六、API 网关(Zuul / Gateway)

23. 什么是 API 网关?

:微服务系统的统一入口,负责路由转发、鉴权、限流、日志、安全控制等。

24. Zuul 和 Gateway 的区别?

特性Zuul 1.xSpring Cloud Gateway
模型Servlet 阻塞WebFlux 非阻塞
性能较低
功能基础路由+过滤支持 Predicate + Filter 组合、限流、重试等
状态维护中官方推荐
25. ZuulFilter 常用方法?

  • filterType():过滤器类型(pre/route/post/error);
  • filterOrder():执行顺序;
  • shouldFilter():是否执行;
  • run():具体逻辑。
26. 网关如何集群?

:前端用 Nginx 做负载均衡,后端部署多个 Zuul/Gateway 实例。


七、配置中心(Config)

27. Spring Cloud Config 是什么?

:集中管理微服务配置的工具,Server 端读取 Git/SVN 配置,Client 端拉取配置。

28. 如何实现配置实时刷新?

  • 手动:调用 /actuator/refresh
  • 自动:结合 Spring Cloud Bus + RabbitMQ/Kafka 广播刷新事件。
29. 分布式配置中心有哪些?

:Spring Cloud Config、Apollo、Nacos、ZooKeeper(KV 存储)。


八、消息总线(Bus)

30. Spring Cloud Bus 是什么?

:基于 MQ(如 RabbitMQ)的消息总线,用于广播配置变更或状态更新到所有微服务实例。

31. Bus 必须配合什么使用?

:必须配合消息中间件(如 RabbitMQ、Kafka)和 Config 使用。


九、链路追踪(Sleuth)

32. Spring Cloud Sleuth 的作用?

:为微服务调用链生成唯一 TraceID 和 SpanID,实现分布式链路追踪,便于排查性能瓶颈和故障。

33. 如何可视化链路?

:集成 Zipkin 或 SkyWalking,收集 Sleuth 数据并展示调用拓扑。


十、其他组件

34. Spring Cloud Stream 是什么?

:屏蔽 Kafka/RabbitMQ 差异的事件驱动框架,通过 @Input/@Output 声明消息通道。

35. Spring Cloud Task 是什么?

:用于运行短生命周期任务(如批处理),支持任务调度与结果回收。

36. Spring Cloud Consul 的优势?

:一站式服务治理工具,内置服务发现、健康检查、KV 存储、多数据中心,无需额外依赖 ZooKeeper。


十一、版本与兼容

37. Spring Cloud 和 Spring Boot 版本对应关系?

Spring CloudSpring Boot
Hoxton2.2.x
Greenwich2.1.x
Finchley2.0.x
Edgware1.5.x
38. Spring Cloud 版本命名规则?

:采用伦敦地铁站名(如 Angel → Brixton → ... → Hoxton),按字母顺序表示发布时间。


十二、综合对比

39. Spring Cloud 和 Dubbo 的区别?

维度Spring CloudDubbo
协议REST(HTTP)RPC(TCP)
注册中心Eureka/ConsulZooKeeper
网关Zuul/Gateway无原生支持
生态Spring 全家桶阿里系(Nacos/Sentinel)
跨语言支持Java 为主
40. 分布式系统面临哪些问题?

:服务发现、负载均衡、网络延迟、安全、配置管理、容错、链路追踪、事务一致性等。


十三、实战与原理

41. 如何设计一套开放 API?

  • 内网 API:局域网调用,简单认证;
  • 开放 API:遵循 OAuth2.0,考虑幂等性、限流、签名、HTTPS;
  • 文档化(Swagger)。
42. 动态路由如何实现(Zuul)?

:通过配置中心管理路由规则,Zuul 监听变更并刷新 RouteLocator。

43. 服务隔离有哪两种方式?

:线程池隔离(默认)、信号量隔离(轻量,适用于高频调用)。

44. CAP 理论是什么?

:分布式系统最多同时满足 一致性(C)可用性(A)分区容错性(P) 中的两个。Eureka 选 AP,ZooKeeper 选 CP。

45. 为什么 Tomcat 线程池会导致雪崩?

:默认单线程池处理所有请求,某一接口高并发占满线程,其他请求阻塞,引发连锁故障。


十四、新趋势与替代方案

46. Zuul 是否已被淘汰?

:Zuul 1.x 已维护,Zuul 2.x 未被 Spring Cloud 官方集成;推荐使用 Spring Cloud Gateway

47. Hystrix 是否还能用?

:可用,但不再更新;新项目建议用 Resilience4j(轻量、函数式)或 Sentinel(阿里开源,功能强)。

48. Nacos 能替代 Eureka + Config 吗?

:可以。Nacos 同时支持服务注册发现和配置管理,是更现代的一体化方案。

49. Spring Cloud Alibaba 是什么?

:阿里推出的 Spring Cloud 扩展,集成 Nacos(注册+配置)、Sentinel(熔断)、RocketMQ(消息)、Seata(分布式事务)等。

http://www.dtcms.com/a/610221.html

相关文章:

  • 玄机-第八章 内存马分析-java02-shiro
  • 延安网站建设哪家专业wordpress主题底部
  • 递归、剪枝、回溯算法---全排列、子集问题(力扣.46,78)
  • JavaScript 对象
  • --- 多源bfs算法 01矩阵---
  • 绵阳做网站网站底部的备案信息
  • bash和命令
  • 游戏微网站模板网站使用条款模板
  • asp.net网站建设成都app定制公司
  • 如何添加网站白名单互联网论坛
  • 如何从 PDF 中删除页面
  • 第28集科立分板机:科立自动化分板机适配多场景生产筑牢电子制造品质防线
  • 网站开发实训开发区网站制作公司
  • 网站开发毕业设计任务书范文圆通速递我做网站
  • 电子商务网站建设及管理南昌net网站开发
  • 「边打字边开挂」:一个 AutoHotkey 实时翻译输入器的诞生记
  • Spring Boot 3.x 系列【3】Spring Initializr快速创建Spring Boot项目
  • 中非经贸合作的岳阳力量
  • 官网网站建设需求wordpress dante 下载
  • 全flash网站模板网站建设备案需要材料
  • Ntp时间同步
  • ⸢ 拾陆-Ⅰ⸥⤳ 安全数智化建设:安全运营中心(SOC)
  • 公益网站建设那家好网站的统计 怎么做
  • 亚马逊巴西加码物流网络,计划新建100个配送中心
  • 长沙做网站微联讯点不错信息手机网站模板下载安装
  • Java MySQL 连接
  • 误分区数据恢复:3种方法,按需选择更高效
  • 怎么给公司做网站推广工程建设领域专项治理工作网站
  • cronet的一些资料
  • Tomct面试题(15道含答案)