线程隔离和信号量隔离调用之间的区别

Posted

技术标签:

【中文标题】线程隔离和信号量隔离调用之间的区别【英文标题】:Difference between thread-isolated and semaphore-isolated calls 【发布时间】:2016-05-06 17:29:57 【问题描述】:

我正在浏览 Netflix 开源功能 Hystrix... 我看到一个声明 “如今,Netflix 每天通过 Hystrix 执行数百亿次线程隔离和数千亿次信号量隔离调用”

想知道这些不同类型的调用之间的区别..

【问题讨论】:

【参考方案1】:

首先我们需要看看线程和信号量之间的区别。通常,由于开销,调用线程比信号量更昂贵。所以对于每秒大量的请求,信号量是你可以考虑的。

其次,使用信号量,命令将在调用者的线程内执行。这意味着并发调用与其他调用没有完全隔离(不像您使用线程时那样)。

最后,使用信号量,当有超时时,它不能被终止(除非你专门设置它)。如果您不知道客户的行为会是什么,那么这将不是一件好事。

【讨论】:

以上是关于线程隔离和信号量隔离调用之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Hystrix和Feign原理和源码

Hystrix分布式系统限流降级熔断框架

Spring Cloud Hystrix熔断器隔离方案

SpringCloud生态

hystrix与sentinel的区别你懂没?

Hystrix两种隔离方式对比