vlambda博客
学习文章列表

Hystrix在工作中你至少需要知道的!--Ⅰ

Hystrix,在辞典里面的意思是豪猪。我们知道豪猪浑身长满了刺,是对自己的保护。所以Hystrix也意味着一种保护机制。

Hystrix是spring cloud 微服务技术栈中的一个组件。是由Netflix公司研发的。

那既然是一种保护机制,那具体保护什么呢?

首先我想先提出一个生产上会出现的问题,雪崩问题。

我们知道在微服务架构中,各个微服务之间的调用关系是非常复杂的,一个请求,可能需要调用多个微服务接口才能实现,会形成非常复杂的调用链路。

如果某个微服务发生异常,请求被阻塞了,用户不会得到响应,则服务器的这个线程不会释放,于是越来越多的用户请求到来,越来越多的线程会阻塞。由于服务器支持的线程和并发数也是有限的,这样的话可能导致一个服务接着一个服务的崩掉,导致雪崩效应。

Hystrix解决雪崩问题有两个方法:

  • 线程隔离

  • 服务熔断

线程隔离:用户的请求不会直接到微服务,而是通过Hystrix为我们每个服务分配的一个小的线程池。如果有空闲的线程那么就可以访问服务,如果没有将会被立即拒绝。

服务降级:就是当用户的请求故障的时候,不会阻塞线程,一直等待,从而导致系统崩溃。至少有一个fallback方法,可以提示一个类似于“请求繁忙,请稍后再试”的友好提示消息。


我是仓十一,我们下期见!