首页 > 其他分享 >springcloud相关面试题

springcloud相关面试题

时间:2023-09-13 22:01:41浏览次数:39  
标签:面试题 服务 请求 springcloud 网关 Eureka 故障 断路器 相关

(目录)

springcloud相关面试题

springcloud中网关起什么作用

在Spring Cloud中,网关起到了路由和过滤的作用。

  1. 路由:网关通过配置路由规则,将请求转发到不同的服务实例上。它可以根据请求的URL、请求的HTTP方法、请求的Header等信息,将请求路由到相应的服务实例上。通过网关,可以实现请求的负载均衡和动态路由等功能。

  2. 过滤:网关可以对请求进行过滤,对请求进行一些预处理或后处理。通过过滤器,可以实现请求的鉴权、请求的限流、请求的日志记录等功能。网关可以在请求到达服务实例之前,对请求进行一些统一的处理,提高系统的可维护性和安全性。

总的来说,网关在Spring Cloud中起到了请求转发和请求过滤的作用,它可以实现请求的路由、负载均衡、动态路由、请求的鉴权、请求的限流等功能,提高了系统的可扩展性、可维护性和安全性。

什么是Eureka

Eureka作为SpringCloud的服务注册功能服务器,他是服务注册中心,系统中的其他服务使用Eureka的客户端将其连接到Eureka Service中,并且保持心跳,这样工作人员可以通过Eureka Service来监控各个微服务是否运行正常

Spring Cloud抛弃了Dubbo 的RPC通信,采用的是基于HTTP的REST方式。

严格来说,这两种方式各有优劣。虽然在一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生RPC带来的问题。而且REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适。

什么是Spring Cloud Bus?

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

如果修改了配置文件,发送一次请求,所有的客户端便会重新读取配置文件。

使用:

1、 添加依赖

2、 配置rabbimq

Ribbon和Feign调用服务的区别

1、 调用方式同:Ribbon需要我们自己构建Http请求,模拟Http请求然后通过RestTemplate发给其他服务,步骤相当繁琐

2、 而Feign则是在Ribbon的基础上进行了一次改进,采用接口的形式,将我们需要调用的服务方法定义成抽象方法保存在本地就可以了,不需要自己构建Http请求了,直接调用接口就行了,不过要注意,调用方法要和本地抽象方法的签名完全一致。

什么是 Hystrix 断路器?我们需要它吗?

Hystrix断路器是一个用于处理分布式系统中的故障和延迟的开源库。它通过监控服务调用的状态,并在发生故障时提供故障保护机制,以防止故障扩散到整个系统。

Hystrix断路器的主要目标是提高系统的弹性和可靠性。它通过实现断路器模式来防止故障的传播,并提供了一些降级策略,如超时、重试、回退等。

我们需要Hystrix断路器来保护分布式系统的稳定性和可靠性。在一个复杂的分布式系统中,服务之间的依赖关系很常见,当某个服务出现故障或延迟时,如果没有断路器的保护,故障可能会扩散到整个系统,导致系统不可用。

Hystrix断路器可以帮助我们在服务出现故障或延迟时,快速失败并提供备用响应,从而减少对依赖服务的依赖。它还可以提供实时监控和报告,以便我们能够及时发现和解决故障。

总而言之,Hystrix断路器是一个非常有用的工具,可以提高分布式系统的稳定性和可靠性,减少故障的传播,并提供故障保护和降级策略。

springcloud如何实现服务的注册?

1、 服务发布时,指定对应的服务名,将服务注册到 注册中心(eureka zookeeper)

2、 注册中心加@EnableEurekaServer,服务用@EnableDiscoveryClient,然后用ribbon或feign进行服务直接的调用发现。

什么是服务降级

consumer 端:consumer 如果发现某个provider出现异常情况,⽐如,经常超时(可能是熔断引起的降级),数据错误,这时,consumer可以采取⼀定的策略,降级provider的逻辑,基本的有直接返回固定的数据。

provider 端:当provider 发现流量激增的时候,为了保护⾃身的稳定性,也可能考虑降级服务。

1、 直接给consumer返回固定数据

2、 需要实时写⼊数据库的,先缓存到队列⾥,异步写⼊数据库。

什么是Eureka的自我保护模式,

默认情况下,如果Eureka Service在一定时间内没有接收到某个微服务的心跳,Eureka Service会进入自我保护模式,在该模式下Eureka Service会保护服务注册表中的信息,不在删除注册表中的数据,当网络故障恢复后,Eureka Servic 节点会自动退出自我保护模式

标签:面试题,服务,请求,springcloud,网关,Eureka,故障,断路器,相关
From: https://blog.51cto.com/onejson/7464624

相关文章

  • Git常见的面试题
    在软件开发领域,Git是一个极为重要的版本控制系统,几乎每个开发者都需要掌握它。因此,在面试过程中,Git常常成为了面试官们用来考察候选人技能和经验的重要工具之一。以下是一些常见的Git面试题,希望它们能帮助你在面试中脱颖而出。什么是Git?Git是一个分布式版本控制系统,用于跟踪......
  • 对标金九银十,分享32个模块的Android面试题,分分钟拿捏面试官
    前言2023年初伴随着疫情结束,迎来了“金三银四”。以为终于迎来胜利的“曙光”,不成想,现实却是当头一棒!!!从“金三银四”的“战绩”来看,程序员跳槽或者找工作并不理想,大批人迟迟找不到工作,大厂仍旧在进行几轮裁员,整个就业市场都不是太好!出现这种情况是因为中美贸易战,导致大环境不好、大......
  • 设置 Android 屏幕方向相关
    Activity在AndroidManifest.xml设置方向android:screenOrientation正向拿着手机(平时正常拿手机)对应角度为0度,此时屏幕为为竖屏,旋转180度,对应角度180度,此时屏幕为反向竖屏;90时此时屏幕为横屏(用户右侧(正向)横屏拿着手机),屏幕角度为270,此时屏幕为反向横屏。Android可以利用android:sc......
  • react配置css相关
    1.installnormalize:yarnaddnormalize.css-D(1).引入src/index.js或src/index.tsx:import"normalize.css";2.installsass:[email protected].配置less:(1).安装less相关依赖:[email protected]@5.0.0-D(2).修改config/webpack.config.js文件:......
  • springcloud日常学习
    一、 Feign客户端接口调用1. 分析与介绍   之前的消费者调用服务提供者是通过RestTemplate + Ribbon组合实现负载均衡进行调用   如果在消费者客户端能够通过面向接口编程的思想去实现对服务提供者进行调用,就更加接近软件工程的开发思想,Feign就可以实现。微服务之间的调......
  • 面试题:Mybatis中的#{}和${}有什么区别?这是我见过最好的回答
    面试题:Mybatis中的#{}和${}有什么区别?前言今天来分享一道比较好的面试题,“Mybatis中的#{}和${}有什么区别?”。对于这个问题,我们一起看看考察点和比较好的回答吧!题,看看普通人考察点mybatis是现在企业级开发中经常使用的数据持久层框架,这个问题就是面试官想考察我们对#{},${}......
  • 优雅地切换SpringCloud注册中心
    背景做项目时偶尔需要切换注册中心,虽然切换很简单,但如果项目研发伊始没有考虑切换的问题,就需要去拉分支,做配置,不够优雅。springCloud支持很多注册中心,这里只介绍三个常用的:Eureka、Nacos、Consul原理利用mavenprofile来处理不同的注册中心以及依赖;pom.xml样例详见50-105行......
  • 视频监控管理平台/视频汇聚/视频云存储EasyCVR安全检查相关问题及解决方法3.0
    智能视频监控系统/视频云存储/集中存储/视频汇聚平台EasyCVR具备视频融合汇聚能力,作为安防视频监控综合管理平台,它支持多协议接入、多格式视频流分发,视频监控综合管理平台EasyCVR支持海量视频汇聚管理,可应用在多样化的场景上,包括城市“一网统管”建设、智慧工地风险预警、智慧工厂......
  • RDB相关问题
    RDB相关问题RDB做快照时会阻塞线程吗?rdb提供两种命令来生成rdb文件,一个是save,一个是bgsave,save会阻塞线程,bgsave不会阻塞,可以通过save参数一参数二设置rdb生成的时机,例如save601表示在60秒内有修改一次数据,就会生成rdbRDB在执行快照的时候,数据能修改吗?可以,因为rdb生......
  • Redis 持久化和aof相关问题
    Redis持久化和aofRedis如何实现数据不丢失?有三种方式实行持久化aof,将执行成功的写命令保存到aof文件中,如果aof文件过大会发生aof重写rdb,保存内存数据的快照混合模式,同时使用aof和rdb,提高性能为什么aof要先执行命令再保存命令不用检查命令合法,不会阻塞当前写的命令缺点......