动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

10道常考spring cloud面试题(附答案)

06-24 17:31 445浏览
举报 T字号
  • 大字
  • 中字
  • 小字

各位Java程序员都知道Spring Cloud是属于Java微服务中的技术,而目前最流行的进行微服务架构的框架之一就是spring cloud,所以也是在Java面试中最常出现的面试版块今天来为大家整理一下spring cloud面试题附答案,希望对有面试需要的朋友有所帮助。

Spring cloud是一个一站式的开发分布式系统的框架它利用spring boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用spring boot的开发风格做到一键启动和部署。

1、spring cloud断路器的作用是什么?

答:在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个错误响应,而不是长时间的等待。这样就不会使得线程因调用故障服务被长时间占用不释放,避免了故障在分布式系统中的蔓延。

2、spring cloud的核心组件有哪些?

答:(1)Eureka:服务注册于发现;(2)Feign:基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求;(3)Ribbon:实现负载均衡,从一个服务的多台机器中选择一台;(4)Hystrix:提供线程池,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题;(5)Zuul:网关管理,由 Zuul 网关转发请求给对应的服务。

3、spring cloud如何实现服务的注册?

答:第一,服务发布时,指定对应的服务名,将服务注册到注册中心(eureka zookeeper);第二,注册中心加@EnableEurekaServer,服务用@EnableDiscoveryClient,然后用ribbon或feign进行服务直接的调用发现。

4、微服务的优点是什么?

答:(1)每一个服务足够内聚,代码容易理解;(2)开发效率提高,一个服务只做一件事;(3)微服务能够被小团队单独开发;(4)微服务是松耦合的,是有功能意义的服务;(5)可以用不同的语言开发,面向接口编程;(6)易于与第三方集成;(7)微服务只是业务逻辑的代码,不会和HTML,CSS或者其他界面组合;(8)可以灵活搭配,连接公共库和独立库。

5、微服务的缺点有什么?

答:(1)分布式系统的负责性;(2)多服务运维难度,随着服务的增加,运维的压力也在增大;(3)系统部署依赖;(4)服务间通信成本;(5)数据一致性;(6)系统集成测试;(7)性能监控。

6、什么是Spring Cloud Bus?

答:spring cloud bus将分布式的节点用轻量的消息代理连接起来,它可以用于广播配置文件的更改或者服务直接的通讯,也可用于监控。

7、springcloud断路器作用是什么?

答:当一个服务调用另一个服务由于网络原因或自身原因出现问题,调用者就会等待被调用者的响应 当更多的服务请求到这些资源导致更多的请求等待,发生连锁效应(雪崩效应)。断路器有完全打开状态:一段时间内 达到一定的次数无法调用 并且多次监测没有恢复的迹象 断路器完全打开 那么下次请求就不会请求到该服务。半开:短时间内有恢复迹象,断路器会将部分请求发给该服务,正常调用时断路器关闭;关闭:当服务一直处于正常状态时能正常调用。

8、什么是服务熔断?什么是服务降级?

答:在复杂的分布式系统中,微服务之间的相互调用,有可能出现各种各样的原因导致服务的阻塞,在高并发场景下,服务的阻塞意味着线程的阻塞,导致当前线程不可用,服务器的线程全部阻塞,导致服务器崩溃,由于服务之间的调用关系是同步的,会对整个微服务系统造成服务雪崩。为了解决某个微服务的调用响应时间过长或者不可用进而占用越来越多的系统资源引起雪崩效应就需要进行服务熔断和服务降级处理。

所谓的服务熔断指的是某个服务故障或异常一起类似显示世界中的“保险丝”当某个异常条件被触发就直接熔断整个服务,而不是一直等到此服务超时。

服务熔断就是相当于我们电闸的保险丝,一旦发生服务雪崩的,就会熔断整个服务,通过维护一个自己的线程池,当线程达到阈值的时候就启动服务降级,如果其他请求继续访问就直接返回fallback的默认值。

9、负载均衡的意义是什么?

答:在计算中,负载均衡可以改善跨计算机,计算机集群,网络链接,中央处理单元或磁盘驱动器等多种计算资源的工作负载分布。负载均衡旨在优化资源使用,最大吞吐量,最小响应时间并避免任何单一资源的过载。使用多个组件进行负载均衡而不是单个组件可能会通过冗余来提高可靠性和可用性。负载平衡通常涉及专用软件或硬件,例如多层交换机或域名系统服务进程。

10、SpringBoot和SpringCloud之间的联系和区别是什么?

答:SpringBoot是Spring推出用于解决传统框架配置文件冗余,装配组件繁杂的基于Maven的解决方案,旨在快速搭建单个微服务;而SpringCloud专注于解决各个微服务之间的协调与配置,服务之间的通信,熔断,负载均衡等。

技术维度并不相同,并且Spring Cloud是依赖于Spring Boot的,而Spring Boot并不是依赖与Spring Cloud,甚至还可以和Dubbo进行优秀的整合开发。

上面的10道题就是今天为大家整理的Spring Cloud面试题,有更多学习需要的朋友可以去学习SpringCloud微服务实践的课程,可以全面掌握Spring Cloud进行微服务架构与开发的方方面面,并能用于实际的开发工作中,提升自身技术能力与价值。

0人推荐
共同学习,写下你的评论
0条评论
我就是我
程序员我就是我

3篇文章贡献11109字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消