1 服务雪崩
假如存在调用链条:serviceA -》 serviceB -》 serviceC。
三个服务的承受能力是不同的,如果serviceA和serviceB请求正常,serviceC因为扛不住请求变得不可用,会导致serviceA和serviceB一直阻塞,资源耗尽后导致serviceB和serviceA变得不可用,导致服务雪崩。
2 服务熔断
下游服务如果因为不可用或者请求超时,上游服务为了保证自己的服务可用性,则不再调用下游服务而直接返回,快速释放资源。等到目标服务情况好转后回复调用。
2.1 断路器模式
断路器模式是熔断机制的一种实现,存在open
,close
,half open
三种状态
- 最开始断路器是close状态,一旦错误数量达到阈值,变转为open状态
- reset timeout,达到设置的时间后,会转移到half open,尝试放行一部分请求到下游服务
- 一旦检测成功,变回到close状态
3 服务降级
3.1 使用场景
- 当下游服务响应过慢或者不可用,会使用降级处理
- 为了将资源预留出来,把一些不重要的请求直接使用降级处理。例如双十一会把一些不重要的资源(种树浇水等)关闭,把资源留给商品、订单等
3.2 降级类型
服务降级有很多种:开关降级、限流降级、熔断降级,熔断器使用的熔断降级只是降级的一种方式,所以不能将二者混为一谈。
- 开关降级:使用动态配置,手动打开或者关闭降级开关。
- 限流降级:客户端访问量达到阈值后,调用降级处理
- 熔断降级:熔断器打开后,调用降级处理