Hystrix在工作中你至少需要知道的!--Ⅰ
Hystrix,在辞典里面的意思是豪猪。我们知道豪猪浑身长满了刺,是对自己的保护。所以Hystrix也意味着一种保护机制。
Hystrix是spring cloud 微服务技术栈中的一个组件。是由Netflix公司研发的。
那既然是一种保护机制,那具体保护什么呢?
首先我想先提出一个生产上会出现的问题,雪崩问题。
我们知道在微服务架构中,各个微服务之间的调用关系是非常复杂的,一个请求,可能需要调用多个微服务接口才能实现,会形成非常复杂的调用链路。
如果某个微服务发生异常,请求被阻塞了,用户不会得到响应,则服务器的这个线程不会释放,于是越来越多的用户请求到来,越来越多的线程会阻塞。由于服务器支持的线程和并发数也是有限的,这样的话可能导致一个服务接着一个服务的崩掉,导致雪崩效应。
Hystrix解决雪崩问题有两个方法:
线程隔离
服务熔断
线程隔离:用户的请求不会直接到微服务,而是通过Hystrix为我们每个服务分配的一个小的线程池。如果有空闲的线程那么就可以访问服务,如果没有将会被立即拒绝。
服务降级:就是当用户的请求故障的时候,不会阻塞线程,一直等待,从而导致系统崩溃。至少有一个fallback方法,可以提示一个类似于“请求繁忙,请稍后再试”的友好提示消息。
我是仓十一,我们下期见!