SpringCloud面试题, HTTP 与 RPC 之间的区别?
SpringCloud面试题, HTTP 与 RPC 之间的区别?
QA
Step 1
Q:: SpringCloud中的Eureka是什么,它的作用是什么?
A:: Eureka是Netflix开源的一个服务发现和注册中心,在SpringCloud中,Eureka用于在微服务架构中实现服务注册与发现功能。通过Eureka,各个微服务可以自动将自己注册到Eureka Server上,并且可以从Eureka Server中获取其他微服务的地址,便于服务之间的通信。
Step 2
Q:: Feign在SpringCloud中是如何工作的?
A:: Feign是一个声明式的HTTP客户端,在SpringCloud中,Feign可以让我们只需通过简单的注解和接口定义,就能调用远程的REST服务。它内置了Ribbon用于负载均衡,并且可以与Eureka结合使用实现服务调用的负载均衡。
Step 3
Q:: 什么是Hystrix,为什么要使用它?
A:: Hystrix是Netflix开源的一个延迟和容错库,用于处理分布式系统中不可避免的延迟和故障问题。通过Hystrix,开发者可以实现服务的降级、熔断、隔离等功能,避免单个服务故障导致整个系统崩溃,提高系统的稳定性和容错性。
Step 4
Q:: HTTP 和 RPC 之间的区别是什么?
A:: HTTP(Hypertext Transfer Protocol)是一种无状态的应用层协议,主要用于在网络上传输超文本,而RPC(Remote Procedure Call)则是一种允许程序调用远程服务的技术。HTTP常用于REST风格的接口,而RPC通常更注重性能和效率,适用于服务之间需要高效通信的场景。RPC可以使用多种协议实现,如gRPC,而HTTP则主要用于Web服务通信。
Step 5
Q:: SpringCloud Gateway与Zuul有什么区别?
A:: SpringCloud Gateway是Spring官方推出的新一代网关,具有更好的性能和更丰富的功能。相比Zuul,它在路由和过滤器方面更具灵活性,并且支持WebFlux、响应式编程等现代特性。而Zuul是Netflix开源的网关组件,功能较为单一,主要用于基本的路由和过滤操作。