通过我前面章节的学习,大家应该可以利用Springcloud搭建一个基本的微服务架构。对于高可用的分布式架构,能够完成服务提供和调用是不够的,为了使我们的服务更加健壮,我们还希望服务有抵挡异常的能力和自我修复的能力,比如服务调用超时、运行时异常、宕机等情况下,我们的系统依然可以对用户提供友好可用的服务。这些是如何做到的,那么我们来一起学习下Hystrix,俗称“豪猪哥”。
Hystrix简介
Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。
Hystrix主要功能指:
- 服务降级
- 服务熔断
- 服务限流
Hystrix通过上述三个功能,在服务异常情况下,保证服务调用方可以获取到符合预期的结果,而不是直接展示服务器异常,避免拖垮调用方,防止雪崩效应的出现。
服务雪崩:
多个微服务之间调用的时候,假设微服务A调用B和C,B和C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,就是所谓的“雪崩效应”。
对于高流量的应用来说,单一的后端依赖可能