熔断:为什么暂时拒绝请求反而能保护服务?

熔断:为什么暂时拒绝请求反而能保护服务?

熔断指一个依赖连续失败或超时后,调用方暂时停止向它发送新请求,直接返回失败或降级结果。它不是认定对方永久坏了,而是用一段冷却期阻止更多等待、重试和资源占用继续累积;随后只放少量探测请求,确认恢复才重新开放。

例如支付查询服务失灵时,订单页面若仍不断追问,线程和连接会被耗尽,原本局部的故障可能拖慢整个网站。熔断让页面先显示“稍后确认”,给支付服务留下恢复空间。

熔断不同于限流:限流约束正常流量的速度,熔断依据近期失败状态决定是否暂时拒绝调用;它也不同于重试,后者再次尝试,前者在失败持续时主动停止尝试。它的中心价值不是消除故障,而是给故障划出传播边界。

https://learn.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker


了解 Geoffrey Chen 的更多信息

订阅后即可通过电子邮件收到最新文章。