Hystrix
用于处理分布式系统的延迟
和容错
的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时,异常等等,Hystrix能够保证在一个依赖出问题的情况下,不会导致服务的整体失败,避免级联故障,以提高分布式系统的弹性。
解决问题
- 服务降级(fallback)、服务熔断(break)、服务限流(flowlimit)
服务降级
-
概念
向调用方返回一个符合预期的,可处理的备选响应(FallBack),而不是长时间的等待或抛出调用无法处理的异常。
这样就保证了服务调用方的线程不会被长时间、不必要地占用,从而避免了故障在分布式系统中的蔓延。
类似于一系列的if else语句。
-
场景
程序运行异常 超时 服务熔断触发服务降级 线程池/信号量打满也会导致服务降级
服务熔断
-
概念
达到最大访问量后,直接拒绝访问
服务限流
-
概念
秒杀等高并发操作,严禁一窝蜂的拥挤过来,大家排队,一秒钟N个,有序进行