springcloud相关面试题

2023-09-13 21:42:58

springcloud相关面试题

Spring Cloud几个核心组件

  1. 服务注册与发现组件——Eureka

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

  2. 网关组件——Gateway

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

    路由:

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

    过滤:

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

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

  3. 服务调用组件——Feign(默认包含Ribbon、Hystrix,基于Ribbon实现负载均衡)
    Ribbon和Feign调用服务的区别

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

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

    Feign、Ribbon、Hystrix三者之间关系图

    image-20230914094507610

  4. 断路器组件(服务容错保护)——Hystrix(Spring - cloud Dalston 版本之后就默认关闭了)

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

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

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

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

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

  5. 配置中心组件——Config
  6. 消息队列组件——Stream

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

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

什么是Spring Cloud Bus?

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

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

使用:

1、 添加依赖

2、 配置rabbimq

什么是服务降级

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

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

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

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

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

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

更多推荐

leetcode 2602. 使数组元素全部相等的最少操作次数

给你一个正整数数组nums。同时给你一个长度为m的整数数组queries。第i个查询中,你需要将nums中所有元素变成queries[i]。你可以执行以下操作任意次:将数组里一个元素增大或者减小1。请你返回一个长度为m的数组answer,其中answer[i]是将nums中所有元素变成queries[i]的最少操作次数

多线程详解(上)

文章目录一、线程的概念1)线程是什么2)为甚要有线程(1)“并发编程”成为“刚需”(2)在并发编程中,线程比进程更轻量.3)线程和进程的区别二、Thread的使用1)线程的创建继承Thread类实现Runnable接口继承Thread类(使用匿名内部类)实现Runnable接口(使用匿名内部类)使用lambda2)Th

【探索C++】string类详解

(꒪ꇴ꒪),Hello我是祐言QAQ我的博客主页:C/C++语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮!送给自己和读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!作者水平很有限,如果发现错误,请在评论区指正,感谢🙏在C++中,字符串处理是非常重要

Linux 文件、目录和用户权限管理指南

文章目录1.用户和组管理引言创建用户删除用户更改用户密码修改用户属性创建组删除组将用户添加到组将用户从组中移除2.文件和目录权限管理引言文件权限概述更改文件权限更改文件所有者和所属组更改目录权限列出文件和目录权限使用特殊权限文件和目录权限的案例分析继承父目录权限特殊权限的使用案例ACL(访问控制列表)umask注意事项

双网卡主机内网外网网关冲突问题探索(策略路由、网络命名空间)(内外网双网卡时,通常不需要在内网网卡上设置默认网关)

文章目录问题背景内外网双网卡时,通常不需要在内网网卡上设置默认网关1.网络冲突2.性能影响解决方法1.默认网关的作用2.只设置一个默认网关3.内网通信4.结论参考文章问题背景我们有一台windowsserver2012服务器,配置了双网卡,一个网卡配置外网,一个网卡配置内网,当我们将外网网络配置外网网关,内网网络配置内

uvm源码解读-sequence,sequencer,driver三者之间的握手关系1

1.startitem1.start_item();sequencer.wait_for_grant(prior);this.pre_do(1);需要指出,这里明确说明了wait_for_grant和send_request之间不能有任何延迟,所以在mid_do这个任务里千万不能有任何延迟。taskuvm_sequen

Spring AOP使用

SpringAOP是什么?AOP(面向切面编程):将那些与业务无关,却为业务模块所共同调用的逻辑(例如事务处理、日志管理、权限控制等)封装抽取成一个可重用的模块,这个模块被命名为“切面”(Aspect),便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性;在SpringAOP中,切面由切点(P

【2023集创赛】IEEE杯二等奖作品:高性能亳米波倍频程压控振荡器设计

本文为2023年第七届全国大学生集成电路创新创业大赛(“集创赛”)IEEE杯二等奖作品分享,参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼品等你来领!团队介绍参赛单位:南京邮电大学队伍名称:顺芯如意指导老师:谢祖帅,王子轩参赛队员:张文旭,汤金圣,秦

GE IS220PAICH2A 336A4940CSP11 控制脉冲模块

GEIS220PAICH2A336A4940CSP11控制脉冲模块是一种用于工业自动化和控制系统的模块,通常用于监测和生成脉冲信号,以控制各种设备和过程。以下是可能与该控制脉冲模块相关的一些产品功能:脉冲生成:GEIS220PAICH2A336A4940CSP11控制脉冲模块通常具有脉冲生成功能,可以生成具有特定频率、

基于STM32的简化版智能手表

一、前言本文的OLED多级菜单UI为一个综合性的STM32小项目,使用多传感器与OLED显示屏实现智能终端的效果。项目中的多级菜单UI使用了较为常见的结构体索引法去实现功能与功能之间的来回切换,搭配DHT11,RTC,LED,KEY等器件实现高度智能化一体化操作。后期自己打板设计结构,可以衍生为智能手表等小玩意。目前,

java学习--day10 (继承)

文章目录day9作业今天的内容1.继承1.1.生活中的继承1.2.Java中继承1.3关于父类子类的内存分析1.4重写【重点】1.5重载【overload】day9作业1.构造代码块和构造方法的区别{代码块}public类名(){}都是实例化一个对象的时候执行的只不过构造代码块先于构造方法执行的2.局部变量和成员变量区

热文推荐