spring cloud面试题汇总及答案
问题一:说一下spring cloud?
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
Spring Cloud是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
问题二:使用Spring Cloud有什么优势?
使用Spring Boot开发分布式微服务时,我们面临以下问题:
①与分布式系统相关的复杂性-这种开销包括网络问题,延迟开销,带宽问题,安全问题。
②服务发现-服务发现工具管理集中的流程和服务如何查和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查并连接到该目录中的服务。
③冗余-分布式系统中的冗余问题。
④负载平衡 --负载平衡改善跨多个计算资源的工作负荷,诸如计算机,计算机集,网络链路,中央处理单元,或磁盘驱动器的分布。
⑤性能-问题由于各种运营开销导致的性能问题。
springboor面试题⑥部署复杂性-Devops技能的要求。
问题三:Spring Cloud的核心组件及其工作原理
Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里;
Ribbon:服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台;
Feign:基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求;
Hystrix:发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题;
Zuul:如果前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务。
问题四:服务注册和发现是什么意思?Spring Cloud如何实现?
当我们开始一个项目时,我们通常在属性文件中进行所有的配置。随着越来越多的服务开发和部署,添加和修改这些属性变得更加复杂。有些服务可能会下降,而某些位置可能会发生变化。手动更改属性可能会产生问题。
Eureka服务注册和发现可以在这种情况下提供帮助。由于所有服务都在Eureka服务器上注册并通过调用Eureka服务器完成查,因此无需处理服务地点的任何更改和处理。
问题五:负载平衡的意义什么?
在计算中,负载平衡可以改善跨计算机,计算机集,网络链接,中央处理单元或磁盘驱动器等多种计算资源的工作负载分布。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免任何单一资源的过载。
使用多个组件进行负载平衡而不是单个组件可能会通过冗余来提高可靠性和可用性。负载平衡通常涉及专用软件或硬件,例如多层交换机或域名系统服务器进程。
问题六:什么是Netflix Feign?它的优点是什么?
Feign是受到Retrofit,JAXRS-2.0和WebSocket启发的java客户端联编程序。Feign 的第一个目标是将约束分母的复杂性统一到http apis,而不考虑其稳定性。在employee-consumer的例子中,我们使用了employee-producer使用REST模板公开的REST 服务。
但是我们必须编写大量代码才能执行以下步骤
①使用功能区进行负载平衡。
②获取服务实例,然后获取基本URL。
③利用REST模板来使用服务。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论