首页 > 其他分享 >【2024面试刷题】一、Spring Cloud 面试题

【2024面试刷题】一、Spring Cloud 面试题

时间:2024-03-04 14:44:45浏览次数:33  
标签:面试题 服务 Spring 2024 断路器 线程 SpringCloud Cloud

1、什么是 Spring Cloud?

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如 服务发现注册配置中心智能路由消息总线负载均衡断路器数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

2、为什么要使用Spring Cloud?

由于单体结构的应用随着系统复杂度的增高,带来了如下问题

  • 代码结构混乱
  • 开发效率变低
  • 排查解决问题成本高

3、Spring Cloud的优缺点?

4、 Spring Cloud和Spring Boot的区别?

  • SpringBoot专注于快速方便的开发单个个体微服务。
  • SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务
  • SpringBoot可以离开SpringCloud独立使用开发项目, 但是SpringCloud离不开SpringBoot ,属于依赖的关系
  • SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。

5、Spring Cloud 和dubbo区别?

  1. 服务调用方式
    • dubbo是RPC
    • SpringCloud采用Rest Api
  2. 注册中心
    • dubbo 是nacos、zookeeper
    • SpringCloud是eureka,也可以是nacos、zookeeper
  3. 服务网关
    • dubbo本身没有实现,只能通过其他第三方技术整合,
    • SpringCloud有Zuul路由网关,作为路由服务器,进行消费者的请求分发,springcloud支持断路器,与git完美集成配置文件支持版本控制,事物总线实现配置文件的更新与服务自动装配等等一系列的微服务架构要素。

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

答:在分布式架构中,断路器模式的功能也相似。当服务单元出现故障(类似于电器短路)时,通过断路器故障监控(类似于熔断保险丝)将错误响应返回给调用器,而不是长时间等待。这样,由于调用故障服务,线程就不会被长期占用,也不会被释放,以避免故障在分布式系统中的传播。

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

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

8、spring 如何注册cloud服务?

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

9、微服务优点是什么??

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

10、微服务的缺点是什么?

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

11、什么是Spring Cloud Bus?

答:Spring Cloud Bus是基于消息代理的分布式系统消息总线。它利用轻量级消息代理来连接各个分布式节点,实现节点之间的消息传递和事件驱动。Spring Cloud Bus的核心思想是通过消息广播机制,使得一次配置更新可以触发所有相关节点的配置刷新,从而实现分布式系统的配置管理]和动态更新。

12、springcloud断路器的作用是什么?

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

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

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

所谓服务熔断,是指某个服务故障或异常在一起,类似于显示世界“保险丝”当异常情况被触发时,整个服务将被直接熔断,而不是等到服务加班。

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

14、负载平衡的意义是什么?

答:负载平衡旨在优化资源使用,最大吞吐量,最小响应时间,避免任何单一资源过载。使用多个组件来平衡负载,而不是通过冗余来提高可靠性和可用性。

15、SpringBoot和SpringCloud有什么联系和区别?

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

不同的技术维度,而Spring Cloud依赖于Spring Boot,Spring Boot不依赖Spring Cloud,甚至可以和Dubbo优秀的综合开发。

16、Hystrix是如何实现它的目标的?

Hystrix 通过:

  • 将所有调用封装到一个HystrixCommand或hystrix观察者的对象中,通常在一个单独的线程中执行(这是命令模式的一个例子)。
  • 时间的调用比你定义的阈值要长。有一个默认值,但是对于大多数依赖项,您可以通过“属性”来定制这些超时,这样它们就会比每个依赖项的99.5%的性能稍微高一些。
  • 维护每个依赖项的一个小线程池(或信号量);如果它变得满了,那么就会立即拒绝请求这个依赖项的请求,而不是排队。
  • 测量成功、失败(客户端抛出的异常)、超时和线程拒绝。
  • 在一段时间内,如果服务的错误百分比超过了一个阈值,就会触发一个断路器来停止对特定服务的所有请求,无论是手动的还是自动的。
  • 当一个请求失败时执行回退逻辑,被拒绝,超时,或短路。
  • 监控指标和配置在接近实时的情况下发生变化。

标签:面试题,服务,Spring,2024,断路器,线程,SpringCloud,Cloud
From: https://www.cnblogs.com/ncyy/p/18051770

相关文章

  • UniDateTimePicker日期转换问题---“2024-03-05” is not a date and time
    这个问题是由于操作系统的日期格式与用StrToDate给UniDateTimePicker.dateTime赋值格式不一致造成的。注意:这个问题在使用UniGui的Standalone模式下没问题,在Windowsservice模式下会出现上述问题。可以在系统的主程序中设置一下系统日期格式:procedureSetDateTimeFormat();var......
  • P10220 [省选联考 2024] 迷宫守卫 题解
    说一下自己赛时做法。赛时会了,但没能调出来,几乎确定进不去队了,留下这篇题解作为这次比赛的记录吧。称激活守卫为打开开关。首先考虑,如果确定所有开关的情况,Bob有一个简单的贪心做法:当走到一个点时,递归其左右子树并得到两个序列,若右子树的对应序列的小于左子树的对应序列,则右边......
  • 【2023-2024第一学期】助教工作学期总结
    一、助教工作的具体职责和任务 (包括:你和老师是如何配合的、你和课程其他助教是如何配合的(如果有的话))1、与老师的配合:老师每周会布置课后作业发布在云班课协助老师批改课后作业收集学生对教学的反馈和建议,与教师合作改进教学方法。2、与课程其他助教的配合:共同解决同学......
  • 2024联合省选 游记
    \(\texttt{Day-1}\)倒数第二天了,\(6\)个参加省选的同学除了我全部都提前上机房了,而我一个人悠哉游哉的坐在教室做文化课作业。被力老师看见了。她问我,你就这么自信吗,你就觉得你随便考就能考过他们吗。我非常淡定的回答道,上去了也没用,不如在下面把文化课进度跟上,还可以放松。......
  • 前端技术开发助教工作总结 —— 2023~2024第一学期
    一、助教工作的具体职责和任务(1)与老师配合的方面理论课批改云班课作业并提醒同学们修改解答同学们在实操中遇到的问题定期收集课程评价并协助老师进行调整和改进整理和分享与前端开发技术相关的学习资料实践课协助老师在实践课中解决同学们的困难统计分组、辅助老师评......
  • 2024解题报告
    2024.3.4A.「ROI2017Day2」学习轨迹题面:给定两个二元组序列\text{A}和\text{B},每个二元组表示这个位置的数的编号与价值。可以对于两个序列各选取一个区间(可以为空),使得两个区间中的数的编号不重复出现,要求在满足该条件的情况下,区间的价值和最大。思路首先来考虑最劣解......
  • 联合省选2024游记
    不知道该记什么呢?day0:从[]回[],进入学校。和我们班的留校的同学讨论了一番如何对圈子分类以及基金会的抽象条目,没做什么题。晚上一直在听歌,“未成形的思绪,穿梭在脑叶和神经。”睡觉,睡眠非常灾难,由于不知道为啥,我在刷手机和躺着中辗转,2点多才睡着。day1:6点起床,然后坐车去......
  • P10220 [省选联考 2024] 迷宫守卫
    二分+贪心+DP。跟D1T2思路有点类似,反正很简单。复杂度大约是\({\rmO}(n^22^n)\)。#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=1e5+5;constllinf=1e18;intT,n,q[N];llK,w[N];vector<int>Q;lldp(into,intd,in......
  • 【2024-02-27】家庭应变
    20:00早晨六点钟打开一天的门,我走进生活,一抹年轻的蓝,在窗前问候我。                                                 ——纳齐姆·希克梅特今天我让何太帮我预约了肩......
  • 【2024-02-26】购车计划
    20:00我们不只是今天的,或者昨天的,我们是广阔的时间所塑造的。                                                 ——荣格周末我们一家人去特斯拉4S店看了车,这是我第一......