【微服务】面试 2、服务雪崩

服务雪崩概念

  • 主要内容:在微服务项目中,微服务间存在远程调用。若某一服务(如服务 d)出现故障,调用它的服务(如服务 a)会失败。若调用方持续向故障服务发起请求,由于服务连接数有限且失败连接未释放,可能导致调用方连接数占满,无法对外提供服务,进而引发连锁反应,使整个微服务链路不可用,这就是服务雪崩。
  • 核心概念:一个服务的失败可能引发整个链路服务的失败。
  • 关键知识点:服务间的远程调用关系、服务连接数的限制以及故障传递导致的雪崩现象。

服务雪崩的解决方法

  • 主要内容:可使用熔断降级和限流来解决服务雪崩问题。其中,熔断降级可利用 spring cloud 中的 hystix 组件实现,限流则是限制访问,主要用于预防。重点讲解熔断降级。
  • 核心概念:通过特定组件和策略防止服务雪崩。
  • 关键知识点:hystix 组件提供熔断降级功能,限流的预防作用及与熔断降级的区别。

服务降级介绍

  • 主要内容:以服务 d 为例,其包含修改和保存两个接口,若保存接口出现问题(如抛异常),服务 a 调用该接口时可加入降级逻辑。降级逻辑可提示用户"网络有问题,请稍后再试",此时保存功能暂时不可用。
  • 核心概念:在接口出现问题时,通过自定义逻辑使部分服务功能暂时不可用,以保障服务稳定性。
  • 关键知识点:服务降级的触发条件(接口异常)、降级逻辑的设置方式(如提示信息)以及对服务功能的影响(部分功能不可用)。

服务降级的具体处理

  • 主要内容 :通常在使用接口发起远程调用时设置降级逻辑,如通过 feign client 调用 其它 服务时,在相关位置设置 fallback 指定降级逻辑,且降级逻辑类与接口方法存在对应关系。正常访问时走远程调用,接口失败则走降级逻辑,如直接提示"获取数据失败"。
  • 核心概念:在代码层面实现服务降级的具体操作和逻辑关联。
  • 关键知识点:代码中设置降级逻辑的位置和方式,降级逻辑类与接口方法的对应关系,以及正常与异常情况下的执行路径。

服务熔断介绍

  • 主要内容 :由 hystrix 组件提供,有关闭、打开、半开三个状态,默认关闭,可在引导类上加注解开启。当请求失败率在一定时间内(如十秒内失败率超过 50%)达到阈值,断路器从关闭状态切换到打开状态,所有请求被拒绝。一段时间后进入半开状态,尝试放行一次请求,根据请求结果决定断路器的后续状态。
  • 核心概念:基于请求失败率等条件对服务进行熔断控制,以防止故障服务对系统的持续影响。
  • 关键知识点:服务熔断的组件、状态及其转换条件,不同状态下对请求的处理方式,以及重试的时间间隔和机制。

服务降级与服务熔断的区别

  • 主要内容:服务降级针对的是某一个接口,是部分服务功能不可用,是服务自我保护或保护下游服务的方式;服务熔断则是针对整个服务不可用,当满足特定的失败率条件时触发。
  • 核心概念:明确两种应对服务雪崩机制在作用对象和触发条件上的差异。
  • 关键知识点:服务降级针对接口、部分功能不可用,服务熔断针对整个服务不可用,以及各自的触发条件和应用场景。

面试题回答要点

  • 主要内容:向面试官解释服务雪崩是一个服务失败导致整个链路服务失败的情形。解决方案包括服务降级和服务熔断,分别阐述其原理、特点及两者区别。如服务降级是服务自我保护或保护下游服务的方式,与接口整合编写降级逻辑;服务熔断默认关闭需手动打开,根据请求失败率触发和恢复。
  • 核心概念:全面、准确地回答服务雪崩相关面试问题,展示对知识的理解和应用能力。
  • 关键知识点:服务雪崩的定义、解决方法(降级和熔断)的详细内容及两者区别,回答问题的逻辑和要点。
相关推荐
Cliven_1 分钟前
Github自动打包推送Maven中央仓库
java·github·maven
indexsunny4 分钟前
互联网大厂Java求职面试实战:Spring Boot微服务与Kafka消息队列解析
java·spring boot·微服务·面试·kafka·jpa
invicinble4 分钟前
关于spring的全量认识
java·spring
齐 飞5 分钟前
JDK8中stream中常用方法
java
小旭95277 分钟前
【Java 基础】泛型<T>
java·开发语言·intellij-idea
她说..7 分钟前
FIND_IN_SET()方法
xml·java·spring boot
花间相见10 分钟前
【JAVA开发】—— Maven核心用法与实战指南
java·python·maven
爱吃的强哥11 分钟前
Springboot 使用 SSE推送消息到客户端(Electron)
java·spring boot·electron
Elias不吃糖12 分钟前
Java Stream 流(Stream API)详细讲解
java·stream·
寻星探路13 分钟前
【全景指南】JavaEE 深度解析:从 Jakarta EE 演进、B/S 架构到 SSM 框架群实战
java·开发语言·人工智能·spring boot·ai·架构·java-ee