聊聊Hystrix
Posted 周杰伦本人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊聊Hystrix相关的知识,希望对你有一定的参考价值。
聊聊Hystrix
Hystrix也是SpringCloud框架中的重要组件,它的功能有跳闸机制,也就是当服务的错误率超过一定的阈值的时候,Hystrix在一段时间内停止请求这个服务,它还有资源隔离的功能,也就是每个方法都可以使用一个小型的线程池,线程池满了话会立即拒绝请求,它还有回退机制:当请求失败的时候会进入回退逻辑,我们可以自定义回退方法,断路器打开一段时候后,Hystrix会自动进入半开状态
Hytrix的使用
如果使用Hystrix,我们需要引入相关的jar包,然后使用注解@EnableCircuitBreaker开启Hystrix功能
然后在方法上添加@HystrixCommand注解进行熔断配置,我们可以通过fallbackMethod来指定具体的方法名,当服务超时熔断的时候执行这个方法,做兜底处理。
我们看一下Hystrix的工作流程,当调用出现错误的时候,看是否达到最小请求数,如果达到了看错误数量是否达到了阈值,如果也达到了就进行跳闸,也就是不再调用远程服务,同时有一个活动窗口时间,如果活动窗口时间内发送远程请求成功就进行恢复
舱壁模式
Hystrix中有个舱壁模式的概念,就是被@HystrixCommand修饰的方法都有单独的线程池,做到方法中的线程池的隔离,可以通过threadPoolKey属性来配置
我们可以配置它的最小请求数、错误数量的阈值、活动窗口时间等等
同时Hystrix还可以被我们监控,看出Hystrix熔断是否开启,有对应的仪表盘的包来引入开启监控
我们可以通过jps命令查看java进程,然后使用jstack命令查看具体进程的线程,从而定位到这个服务占用了多少线程
总结
这篇文章主要介绍了Hystrix的一些功能点,它可以进行熔断处理,还有舱壁模式,让每个方法独立线程池,还介绍了Hystrix的工作流程,使用微服务开发项目,必然会涉及到微服务的熔断,而Hystrix又是我们项目中的首选的熔断处理技术,下篇文章中我们将介绍Hystrix的源码的内容,深入分析一下它的具体功能的实现逻辑。
以上是关于聊聊Hystrix的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud系列七:Hystrix 熔断机制(Hystrix基本配置服务降级HystrixDashboard服务监控Turbine聚合监控)