SpringCloud面试题
1、什么是 Spring Cloud
Spring Cloud是一个微服务框架,相比Dubbo等RPC框架,Spring Cloud提供的全套的分布式系统解决方案, Spring Cloud 为开发者提供了快速构建**分布式系统的工具**,开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。
2、使用 Spring Cloud 有什么优势?
使用 Spring Boot 开发分布式微服务时,我们都会遇到
-
由于各种运营开销导致的性能问题
-
分布式系统中的冗余问题
-
服务发现、集群网络以及负载均衡
-
安全问题
-
部署复杂性
Spring Cloud都很好的解决了
3、服务注册和发现是什么意思?Spring Cloud 如何实现?
当我们开始一个项目时,我们通常在属性文件中进行所有的配置。随着越来越多的服务开发和部署,添加 和修改这些属性变得更加复杂。手动更改属性可能会产生问题。Spring Cloud 采用 Eureka 作为注册中心。所有服务都在 Eureka 服务器上注册并通过调用 Eureka 服务器完成查找。
4、负载均衡的意义什么
负载均衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免任何单一资源的过载。
5、什么是 Hystrix?它如何实现容错
Hystrix 是一个延迟和容错库,旨在隔离远程系统,服务和第三方库的访问点,当出现故障是不可避免的 故障时,停止级联故障并在复杂的分布式系统中实现弹性。
如果像某个项目一个服务调一个服务、一个服务调一个服务,当最后一个微服务发生错误时,那么使用传统方法我们将抛出一个异常,这样一个一个回传会导致整个系统的崩溃。
Hystrix 在这种情况下可以使用 Fallback 方法功能,我们可以使用 Hystrix 定义了一个与公开服务相同的返回类型的回退方法。当公开的服务会抛出异常时,将返回我们定义的内容。
6、什么是 Netflix Feign?它的优点是什么
feign 和 ribbon一样 是两个实现负载均衡的组件。feign 采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可,不需要自己构建 http 请求,就像是调用自身工程的方法调用,而感觉不到是调用远程方法,使得编写客户端变得非常容易。
7、什么是 Spring Cloud Bus?我们需要它吗?
Spring Cloud Bus 提供了跨多个实例刷新配置的功能。他利用了MQ的广播机制在分布式的系统中传播消息,当我们刷新一个实例时,此事件都会订阅到侦听 此代理的所有微服务,并且它们也会跟着刷新。