[Q&A] 什么是熔断?
一个服务A如果依赖于服务B,当服务B出现故障或者响应时间过长时,服务A对服务B的连续失败请求会导致资源浪费、线程阻塞等问题,并可能进一步引发整个系统的级联故障(雪崩效应
)。熔断器通过监控服务间的调用状态和性能指标(如错误率、超时次数等),一旦这些指标达到预设阈值,就会“熔断”服务调用链路,即不再尝试调用服务B,而是直接返回一个默认结果或执行降级操作,避免了等待超时和资源耗尽的情况。
[Q&A] 熔断手段?
使用熔断器
熔断器通常具有以下三个状态:
关闭状态(Closed):正常情况下,熔断器处于关闭状态,允许所有请求通过并监视失败情况。
开启状态(Open):当在一定时间内失败请求的数量达到阈值时,熔断器切换到开启状态,接下来的一段时间内(熔断持续时间),所有请求都会被立即拒绝,不会真正调用后端服务。
半开状态(Half-Open):在熔断持续时间结束后,熔断器进入半开状态,允许一部分请求通过以检查后端服务是否已经恢复。如果这些请求成功,则认为服务已恢复正常,熔断器将重置为关闭状态;否则,若仍有请求失败,则重新转为开启状态。
熔断设计模式
需要学习
熔断工具
Hystrix
Sentinel
Resilience4j
Spring Cloud Circuit Breaker
[Ref] 什么是熔断?