SpringCloud 面试题, 现在有哪些流行的微服务框架?
SpringCloud 面试题, 现在有哪些流行的微服务框架?
QA
Step 1
Q:: 什么是Spring Cloud?它的核心组件有哪些?
A:: Spring Cloud 是一个用于构建分布式系统的框架,它通过整合各种微服务组件,为开发者提供了一整套开发、部署、管理微服务的工具。核心组件包括:Eureka(服务注册与发现)、Ribbon(客户端负载均衡)、Hystrix(断路器)、Zuul(API网关)、Config Server(分布式配置管理)、Sleuth(分布式跟踪)等。
Step 2
Q:: Eureka 在 Spring Cloud 中的作用是什么?如何配置 Eureka?
A:: Eureka 是 Spring Cloud Netflix 组件之一,主要用于服务注册与发现。服务实例会在启动时将自己注册到 Eureka Server 上,而其他服务可以通过 Eureka Server 获取到服务实例的地址,从而进行服务调用。配置时需要在 application.yml
中指定 eureka.client.serviceUrl.defaultZone
,并在服务端应用中开启 Eureka Server 功能,在客户端应用中开启 Eureka 客户端功能。
Step 3
Q:: 如何使用 Hystrix 实现服务的降级与熔断?
A:: Hystrix 是一个用于处理服务之间依赖关系的容错工具。当某个服务出现故障时,Hystrix 能够通过快速失败(熔断)避免对故障服务的连续调用,并提供服务降级(fallback)机制,为调用方返回一个默认的响应。要使用 Hystrix,只需在方法上使用 @HystrixCommand
注解,并提供一个 fallback 方法即可。同时,也可以在配置文件中设定熔断器的相关参数,如超时、失败阈值等。
Step 4
Q:: 什么是分布式配置管理?Spring Cloud Config 是如何实现的?
A:: 分布式配置管理指的是将应用的配置文件集中化管理,确保多实例部署时配置的一致性和动态更新。Spring Cloud Config 提供了一个集中式的配置管理服务,应用的配置可以存储在 Git、SVN 等版本控制系统中,Spring Cloud Config Server 负责从这些存储仓库中获取配置并提供给客户端。客户端通过 @EnableConfigServer
和 @RefreshScope
注解实现配置的动态加载与刷新。
Step 5
Q:: Spring Cloud Gateway 与 Zuul 有什么区别?为什么选择 Spring Cloud Gateway?
A:: Spring Cloud Gateway 是 Spring 官方推出的第二代 API 网关框架,相较于第一代的 Zuul,Spring Cloud Gateway 具有更好的性能、更强的功能以及更简单的配置。它基于 Spring WebFlux,使用非阻塞 API,从而提供了更高的吞吐量。同时,它还支持路径重写、限流、重试、断路器等功能。