作者:Keai丶绿茶_890 | 来源:互联网 | 2023-08-29 14:31
篇首语:本文由编程笔记#小编为大家整理,主要介绍了服务熔断, 服务降级相关的知识,希望对你有一定的参考价值。
服务熔断, 服务降级
参考:
https://blog.csdn.net/pengjunlee/article/details/86688858
https://blog.csdn.net/llianlianpay/article/details/79768890
在介绍熔断机制之前, 需要理解微服务的雪崩效应. 在微服务架构中, 微服务是完成一个单一的业务功能, 这样做的好处是可以做到解耦, 每个微服务可以独立演进. 但是, 一个应用可能会有多个微服务组成, 微服务之间的数据交互通过运程调用完成. 这就带来一个问题, 假设微服务A调用微服务B和微服务C, 微服务B和微服务C又调用其他的微服务, 这就是所谓的"扇出".
如果扇出的链路上某个微服务的调用响应时间过长或者不可用, 对微服务A的调用就会占用越来越多的系统资源, 进而引起系统崩溃, 所谓的"雪崩效应"
#服务熔断
服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。
#服务降级
服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前准备好的fallback(退路)错误处理信息。这样,虽然提供的是一个有损的服务,但却保证了整个系统的稳定性和可用性。
#熔断VS降级
相同点:
目标一致 都是从可用性和可靠性出发,为了防止系统崩溃;
用户体验类似 最终都让用户体验到的是某些功能暂时不可用;
不同点:
触发原因不同 服务熔断一般是某个服务(下游服务,即被调用的服务)故障引起,而服务降级一般是从整体负荷考虑