spring - Hystrix中使用ThreadPool的优点

标签 spring architecture microservices hystrix

在Hystrix中使用线程池有什么好处? 假设我们正在调用第三方服务,当我们调用服务或数据库时,线程进入等待状态,那么为每个调用不断创建线程有什么用?

那么,我的意思是短路(线程池)方法比普通(非短路)方法更好?

最佳答案

假设远程服务(任何服务)启动时响应缓慢,但典型的应用程序(调用远程服务的服务)仍将继续调用该远程服务。因此,短路(线程池)方法可以帮助您在这种特殊情况下构建防御系统。

由于调用服务不知道远程服务是否正常,因此每次收到请求时都会生成新线程。这将导致使用已经陷入困境的服务器上的线程。

我们不希望这种情况发生,因为我们需要这些线程用于其他远程调用或在我们的服务器上运行的进程,并且我们还希望避免 CPU 利用率飙升。因此,如果出现延迟,这可以防止资源被阻塞。另外,有界线程池也为下游服务的恢复提供了一些喘息空间。

详情:ThreadPool in Hystrix

关于spring - Hystrix中使用ThreadPool的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51422290/

相关文章:

.net - 跟踪复杂对象图中的变化

java - Spring Boot 中多个项目中的错误处理程序

spring-boot - Spring Cloud Config 如何下载服务的远程配置?

java - 如何使用 Spring Data 更新 Mongodb 中的整数数组元素?

java - 如何修复在 Spring Boot 中运行 sql 查询?

architecture - 建立软件工程技能的资源

java - 混合 DAO 和服务调用

c# - WebApi 中的微服务设计部分

spring - 从 Spring 4.3 升级到 5.0 后 Spring Security OAuth 中的 "NoClassDefFoundError: org/springframework/web/method/HandlerMethodSelector"

spring.data.rest.defaultMediaType=application/json 不起作用