什么是服务的雪崩
serviceA ---> serviceB ---> serviceC
如果A的流量波动很大,如果流量突然增加,在这个时候,如果出现了serviceC扛不住请求,奔溃了,这个时候serviceB也会被阻塞,慢慢的serviceB的线程资源也会被耗尽,B就会不可用,慢慢的A也会不可用
就是一个服务的失败导致整个链条或者其他的链条的服务都失败的情况,这就是服务的雪崩
怎么处理服务的雪崩
服务熔断:当下游的服务因为一些原因变得不可用或者响应变慢的情况,上游的服务不再调用目标服务,直接返回,快速释放资源,如果目标服务情况好转,则恢复调用。
服务的降级:
- 当下游的服务因为某些原因响应过慢,下游服务主动停掉一些不重要的服务,释放资源,加快响应的速度
- 当下游服务不可用,上游服务主动调用本地一些降级逻辑
服务降级和服务熔断的关系
- 服务降级的方式有多种(开关降级,限流降级,熔断降级)
- 服务熔断属于降级的一种方式
服务的降级方案
- 简化执行流程
- 关闭次要功能
- 降低一致性