SpringCloud 面试题, 为什么需要负载均衡?
SpringCloud 面试题, 为什么需要负载均衡?
QA
Step 1
Q:: SpringCloud 是什么?
A:: SpringCloud 是一系列工具的集合,用于简化基于微服务架构的分布式系统的开发。它提供了微服务的配置管理、服务发现、负载均衡、断路器、全局锁、分布式消息传递等功能,基于 Spring Boot,帮助开发者快速构建分布式系统。
Step 2
Q:: 为什么需要负载均衡?
A:: 在微服务架构中,单个服务通常有多个实例运行在不同的服务器上。负载均衡的目的是将用户请求均匀地分发到这些服务实例中,以提高系统的吞吐量和可靠性。没有负载均衡,某个实例可能会超载,而其他实例则可能处于闲置状态,从而导致资源浪费和服务不稳定。
Step 3
Q:: SpringCloud 中常见的负载均衡策略有哪些?
A:: SpringCloud 中常见的负载均衡策略包括:
1.
轮询(Round Robin):按顺序将请求分配给不同的实例。
2.
权重轮询(Weighted Round Robin):根据实例的权重分配请求,权重高的实例接收更多请求。
3.
随机(Random):随机选择一个实例。
4.
最小连接数(Least Connections):选择当前处理请求数量最少的实例。
Step 4
Q:: 如何在 SpringCloud 中实现负载均衡?
A:: SpringCloud 提供了 Ribbon 和 Spring Cloud LoadBalancer 两种方式来实现负载均衡。Ribbon 是早期的实现,通过配置文件或者代码来定义负载均衡策略。而 Spring Cloud LoadBalancer 是较新的实现,整合了 Spring 的核心组件,更容易与 Spring 生态系统集成。通常只需要在服务调用时添加 @
LoadBalanced 注解即可启用负载均衡。
Step 5
Q:: 什么是 Ribbon?它在 SpringCloud 中的作用是什么?
A:: Ribbon 是 Netflix 开源的客户端负载均衡器,SpringCloud 将其集成到服务调用中。Ribbon 可以在客户端实现多种负载均衡算法,使得服务调用更加高效和可靠。通过配置 Ribbon,可以自定义服务的负载均衡策略,例如使用轮询、随机、最小连接数等算法。
Step 6
Q:: Spring Cloud Gateway 是什么?
A:: Spring Cloud Gateway 是一种基于 Spring 5、Spring Boot 2
和 Project Reactor 构建的 API 网关,旨在提供一种简单而有效的路由方式。它可以用于控制流量的路由,并提供诸如断路器、限流、重试、认证等功能。