服务降级和熔断的区别?

高并发面试题发布于

一、降级(Degrade)

  • 主动关闭非核心功能,保证核心功能可用。
  • 如大促时关闭评论、推荐,保交易。
  • 是一种策略,通常按预设规则触发。

二、熔断(Circuit Breaker)

  • 下游服务故障时,上游不再调用,直接返回降级结果。
  • 类似电路保险丝,防止故障蔓延。
  • 基于错误率、响应时间等指标自动触发。

三、熔断器状态

  • Closed:正常调用,统计指标。
  • Open:达到阈值,直接返回降级响应。
  • Half-Open:放少量请求试探,成功则关闭,失败则继续打开。

四、实现

  • Sentinel:熔断规则(慢调用比例、异常比例、异常数)。
  • Hystrix:已停更。
  • Resilience4j:轻量。

五、降级方案

  • 返回兜底数据。
  • 返回缓存数据。
  • 返回默认值或提示。
  • 排队等待(异步处理)。