MST

星途 面试题库

面试题:微服务架构中微服务熔断与降级的动态调整机制 - 策略理解

在微服务架构下,简单阐述熔断和降级机制的主要区别,并说明在动态调整机制中,它们分别基于哪些常见指标来触发调整?
44.5万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

熔断和降级机制的主要区别

  1. 概念本质
    • 熔断:类似于电路中的保险丝,当某个微服务调用出现故障(如调用超时、异常比例过高)时,熔断器会在一段时间内“熔断”,阻止对该微服务的进一步调用,避免故障扩散,是一种对故障的“自我保护”机制。
    • 降级:当系统整体资源紧张(如高并发导致服务器负载过高)或者部分服务出现问题时,主动将一些非核心业务功能或服务暂时屏蔽或返回默认值,以保证核心业务的正常运行,是一种“丢卒保车”的策略。
  2. 触发原因
    • 熔断:主要基于特定微服务自身的调用健康状况触发,例如某个微服务调用的失败率、超时率达到一定阈值。
    • 降级:更多基于系统整体的资源状况、业务优先级等触发,如系统CPU使用率过高、内存不足等,或者为了保证核心业务,主动对非核心业务进行降级。
  3. 应用场景
    • 熔断:常用于解决单个微服务故障导致的级联错误问题,确保故障隔离。例如,订单服务调用库存服务频繁失败,此时熔断库存服务调用,避免订单服务因等待库存服务响应而占用大量资源。
    • 降级:适用于应对系统整体压力,保障核心功能。比如在电商大促期间,为保证下单、支付等核心功能,将一些非核心的如商品评价展示等功能进行降级。

动态调整机制中触发调整的常见指标

  1. 熔断触发指标
    • 失败率:统计一定时间内微服务调用失败(如抛出异常、返回错误状态码)的次数与总调用次数的比例。当失败率超过设定阈值(如80%),熔断器可能熔断。
    • 超时率:统计一定时间内微服务调用超时的次数与总调用次数的比例。若超时率达到设定值(如50%),可能触发熔断。
    • 异常比例:和失败率类似,专门统计异常情况(如业务异常、系统异常)在总调用中的占比,当此比例过高时触发熔断。
  2. 降级触发指标
    • 系统资源指标
      • CPU使用率:当系统CPU使用率长时间维持在高位(如超过80%),可能对一些非核心服务进行降级。
      • 内存使用率:若内存使用率达到一定阈值(如90%),表明内存资源紧张,可考虑对部分服务降级。
      • 磁盘I/O使用率:当磁盘I/O繁忙程度过高,如读写等待时间过长,可作为降级触发条件之一。
    • 业务相关指标
      • 请求流量:当某个服务的请求流量突然暴增,超过系统承载能力,可对非核心服务降级。例如,商品详情页服务流量在促销活动时剧增,可对评论展示等相关服务降级。
      • 业务优先级:根据业务重要程度,在资源紧张时,主动对低优先级业务进行降级。如电商系统中,支付业务优先级高于商品浏览统计业务,在资源不足时先降级商品浏览统计业务。