SpringCloud 面试题, HTTP 与 RPC 之间的区别?
SpringCloud 面试题, HTTP 与 RPC 之间的区别?
QA
Step 1
Q:: SpringCloud 是什么?它的主要组件有哪些?
A:: Spring Cloud 是一组工具集合,帮助开发者轻松构建分布式系统。主要组件包括:Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(断路器)、Zuul(API Gateway)、Feign(声明式 HTTP 客户端)和 Spring Cloud Config(集中式配置管理)。
Step 2
Q:: HTTP 与 RPC 之间的区别是什么?
A:: HTTP 是一种无状态的、面向文本的协议,通常用于 Web 服务之间的通信。RPC(Remote Procedure Call)是一种允许程序通过网络直接调用远程服务器上的函数的协议。主要区别包括:1)HTTP 面向资源,而 RPC 面向操作;2)HTTP 协议比较通用,而 RPC 协议较为专用,通常绑定到特定的传输协议或序列化方式;3
)HTTP 请求通常更大,性能相对较低,而 RPC 更轻量,性能更高。
Step 3
Q:: 在 SpringCloud 中,如何实现服务的负载均衡?
A:: 在 Spring Cloud 中,负载均衡可以通过 Ribbon 实现。Ribbon 是一个客户端负载均衡器,可以在多个服务实例之间分配请求。结合 Eureka,Ribbon 可以动态地获取服务实例列表,并根据预设的负载均衡策略(如轮询、随机等)选择目标实例。
Step 4
Q:: 什么是 Hystrix?它在 SpringCloud 中的作用是什么?
A:: Hystrix 是一个延迟和容错库,在分布式系统中用于隔离服务之间的调用,防止单个服务的故障扩散。它提供了断路器模式,当某个服务的调用失败率达到一定阈值时,断路器会跳闸,阻止进一步的调用请求,并触发降级策略。这在分布式系统中至关重要,可以提高系统的稳定性和容错能力。
Step 5
Q:: Spring Cloud Config 是什么?它是如何工作的?
A:: Spring Cloud Config 是 Spring Cloud 中的一个组件,用于集中管理微服务的配置。它支持从 Git、SVN 等版本控制系统中加载配置文件,并在客户端启动时或运行时动态刷新配置。通过配置中心,所有微服务都可以从一个统一的地方获取配置,提高了配置管理的效率和一致性。