Hystrix基础入门介绍
分布式系统面临的问题
- 分布式系统结构中各个微服务之间相互调用和依赖,在调用的过程中难免出现调用失败、超时等问题。如果不做处理可能会因为一个服务不通而导致整个系统出现级联故障,进而引起系统崩溃即所谓的服务雪崩。
- 从上面可以看出引起雪崩的原因是:没有对系统故障或者超时进行隔离和管理,以至于单个服务的失败而影响了整个应用程序。
- 有没有一种技术能解决这个问题呢?当然有,那就是我要介绍的Hystrix!
Hystrix是什么
- 在分布式环境中,不可避免地会有服务调用失败的问题。Hystrix是一个用于处理分布式系统延迟和容错的开源库,可通过添加超时时间和容错机制来帮助您控制这些分布式服务之间的调用。Hystrix通过隔离服务之间的访问,停止服务之间的级联故障并提供服务调用失败后的后置处理来实现此目的,Hystrix能够保证在一个服务出现问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性
Hystrix中三个重要的点
-
服务降级
-
服务熔断
-
服务限流:很容易理解,这里不做介绍后续会出Sentinel的技术文章,阿里开源的Sentinel做限流更加合适。
服务降级和服务熔断的区别
- 通过上面的介绍其实已经很明显了,最核心的区别就是:服务降级会一直调用有问题的服务,明明知道服务不可用还在调用。而服务熔断是指服务异常次数超过一定的阈值以后,直接降级而不再调用有问题的服务