Hystrix为避免因调用单个服务耗用连接多,造成调用其他服务的不可用情况,提供了线程隔离的功能。
有2种模式:
1、线程池
使用线程池的方式控制访问某个资源的线程数,对于超出此线程池核心线程数的请求,放置在队列中。
feign调用过程中,若开启了Hystrix熔断,则feign调用接口将是经过代理的Hystrix类。
对于每个feign client都会在服务启动时,创建名称为该应用名的线程池,默认10个核心线程数。
2、信号量
信号量这个并不是Hystrix特有的,在网关中也存在这个概念。
信号量的方式避免了创建线程池及维护线程池的消耗,在超出信号量值时直接拒绝。