首页 > 解决方案 > Hystrix中使用ThreadPool的优势

问题描述

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

那么,我的意思是短路(线程池)方法是怎样的,然后是普通(非短路)方法?

标签: springarchitecturemicroserviceshystrix

解决方案


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

由于调用服务不知道远程服务是否健康,并且每次请求进入时都会产生新线程。这将导致使用已经在苦苦挣扎的服务器上的线程。

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

详情:Hystrix 中的线程池


推荐阅读