面试题答案
一键面试熔断降级触发条件
- 慢调用比例:当请求的平均响应时间超过设定阈值,且慢调用的请求数占总请求数的比例超过设定的慢调用比例阈值时,触发熔断。
- 异常比例:当请求的异常数占总请求数的比例超过设定的异常比例阈值时,触发熔断。
- 异常数:当请求的异常数超过设定的异常数阈值时,触发熔断。
熔断策略
- 慢调用比例:通过统计一段时间内的慢调用情况,判断服务是否处于“慢”状态。例如,设定平均响应时间阈值为500ms,慢调用比例阈值为50%,表示若在统计时间窗口内,平均响应时间超过500ms的请求数占总请求数的比例达到50%,则触发熔断。
- 异常比例:根据一段时间内的异常请求占比来熔断。如设定异常比例阈值为20%,在统计时间窗口内,如果异常请求数占总请求数的20%,就触发熔断。
- 异常数:只看异常请求的数量。例如设定异常数阈值为100,当统计时间窗口内异常请求数达到100时,触发熔断。
实际项目示例
- 高并发且对响应时间敏感的服务:例如电商的商品详情页服务,用户期望快速获取商品信息。可采用慢调用比例熔断策略。设定平均响应时间阈值为200ms,慢调用比例阈值为30%,统计时间窗口为10s。因为商品详情页流量大,即使少量慢调用但比例达到一定程度,也可能影响大量用户体验,此时熔断能快速切断对下游可能出现问题服务的调用,防止级联故障。
- 对数据准确性要求高的服务:如订单处理服务,不允许大量异常。可采用异常比例熔断策略。设定异常比例阈值为10%,统计时间窗口为60s。订单处理涉及金钱交易等重要业务,少量异常也需重视,当异常比例达到10%触发熔断,避免更多错误订单产生。
- 资源消耗型服务:例如复杂的数据分析服务,处理请求需要大量计算资源,容易因资源不足产生异常。可采用异常数熔断策略。设定异常数阈值为50,统计时间窗口为30s。当短时间内出现50个异常,说明服务可能资源耗尽或出现严重内部问题,熔断能阻止更多无效请求,保护服务。