Hystrix的线程池和信号量限流概念

Posted 好大的月亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hystrix的线程池和信号量限流概念相关的知识,希望对你有一定的参考价值。

简述

Hystrix在springcloud中是常用的限流工具。平时在写feign接口的时候所使用的FallbackFactory就是来自Hystrix。其主要目的是防止服务被拖垮。比如A请求B,B请求C,在B->C的时候阻塞了,导致A也被拖住了。那么此时就要做一些操作,不让A也被拖垮。

线程池隔离

简单来说就是启用了一个线程池提供给服务调用。举例来说就是A调用B的线程都走线程池,这样就自然控制了请求的数量。

Hystrix默认实现的策略就是线程池隔离。

执行方式和线程池相同,数量未达到核心线程数就一直创建核心线程数,达到核心线程数就进入等待队列,等待队列满了就看拒绝阈值(可以覆盖等待队列)是否超过。

信号量隔离

和线程池类似,只是实现方式不一样。
信号量是将标识给tomcat线程,信号量有多少就允许多少tomcat线程通过它。

以上是关于Hystrix的线程池和信号量限流概念的主要内容,如果未能解决你的问题,请参考以下文章

8-19 Hystrix隔离演示及差异讲解

hystrix与sentinel的区别你懂没?

不能再让服务这么任性的被访问啦---分布式服务熔断降级限流利器至Hystrix

哨兵sentinel

服务限流,怎么计算配额?

源码分析:Semaphore之信号量