Hystrix是什么?
在分布式系统,我们一定会依赖各种服务,那么这些个服务一定会出现失败的情况,Hystrix就是这样的一个工具,它通过提供了逻辑上延时和错误容忍的解决力来协助我们完成分布式系统的交互。Hystrix 通过分离服务的调用点,阻止错误在各个系统的传播,并且提供了错误回调机制,这一系列的措施提高了系统的整体服务弹性。
hystrix的优点
1.快速失败
- 在出现异常问题之后,走降级方法,快速失败,返回托底数据
2.hystrix的隔离机制
- 1.线程池隔离
用户接收请求依然使用我们容器的线程池,但是处理任务时使用hystrix的线程池,避免容器的线程池耗尽,无法返回托底数据,让整个微服务架构因为一个服务的问题而崩溃 - 2.信号量隔离
- 每次调用线程,都通过一个计数信号量进行限制,当信号量达到最大请求数后进行限制,不再给予线程,调用fallback返回托底数据
3.hystrix的断路器(熔断器)
- 在一个服务多次失败达到一个阈值时,开启断路器,在一段时间内,不再对外提供服务
- 默认在10秒内,请求数达到20个,并且失败率达到50%时,开启断路器,持续5s后,放行一个请求尝试访问,如果该请求访问成功,则关闭断路器,如果失败,则重置短路器5s开启时间
- hystrix还提供了监控界面 可惜清晰的观察到断路器的开闭状态