MST

星途 面试题库

面试题:微服务架构里Sentinel熔断降级策略与实现

在复杂的微服务架构系统中,服务之间的依赖关系错综复杂,容易出现级联故障。Sentinel的熔断降级机制可以有效避免这类问题。请详细说明Sentinel熔断降级的触发条件、熔断策略(如慢调用比例、异常比例等),并举例说明如何在实际项目中根据不同服务特性设置合理的熔断降级规则。
33.3万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

熔断降级触发条件

  1. 慢调用比例:当请求的平均响应时间超过设定阈值,且慢调用的请求数占总请求数的比例超过设定的慢调用比例阈值时,触发熔断。
  2. 异常比例:当请求的异常数占总请求数的比例超过设定的异常比例阈值时,触发熔断。
  3. 异常数:当请求的异常数超过设定的异常数阈值时,触发熔断。

熔断策略

  1. 慢调用比例:通过统计一段时间内的慢调用情况,判断服务是否处于“慢”状态。例如,设定平均响应时间阈值为500ms,慢调用比例阈值为50%,表示若在统计时间窗口内,平均响应时间超过500ms的请求数占总请求数的比例达到50%,则触发熔断。
  2. 异常比例:根据一段时间内的异常请求占比来熔断。如设定异常比例阈值为20%,在统计时间窗口内,如果异常请求数占总请求数的20%,就触发熔断。
  3. 异常数:只看异常请求的数量。例如设定异常数阈值为100,当统计时间窗口内异常请求数达到100时,触发熔断。

实际项目示例

  1. 高并发且对响应时间敏感的服务:例如电商的商品详情页服务,用户期望快速获取商品信息。可采用慢调用比例熔断策略。设定平均响应时间阈值为200ms,慢调用比例阈值为30%,统计时间窗口为10s。因为商品详情页流量大,即使少量慢调用但比例达到一定程度,也可能影响大量用户体验,此时熔断能快速切断对下游可能出现问题服务的调用,防止级联故障。
  2. 对数据准确性要求高的服务:如订单处理服务,不允许大量异常。可采用异常比例熔断策略。设定异常比例阈值为10%,统计时间窗口为60s。订单处理涉及金钱交易等重要业务,少量异常也需重视,当异常比例达到10%触发熔断,避免更多错误订单产生。
  3. 资源消耗型服务:例如复杂的数据分析服务,处理请求需要大量计算资源,容易因资源不足产生异常。可采用异常数熔断策略。设定异常数阈值为50,统计时间窗口为30s。当短时间内出现50个异常,说明服务可能资源耗尽或出现严重内部问题,熔断能阻止更多无效请求,保护服务。