spring - Hystrix中使用ThreadPool的优势
问题描述
在 Hystrix 中使用线程池有什么好处?假设我们正在调用第三方服务,当我们调用服务或数据库时,该线程进入等待状态,而不是为每次调用保持创建线程有什么用?
那么,我的意思是短路(线程池)方法是怎样的,然后是普通(非短路)方法?
解决方案
假设远程服务(任何服务)开始响应缓慢,但典型的应用程序(正在调用远程服务的服务)仍将继续调用该远程服务。因此,短路(线程池)方法可以帮助您在这种特殊情况下构建防御系统。
由于调用服务不知道远程服务是否健康,并且每次请求进入时都会产生新线程。这将导致使用已经在苦苦挣扎的服务器上的线程。
我们不希望这种情况发生,因为我们需要这些线程用于在我们的服务器上运行的其他远程调用或进程,并且我们还希望避免 CPU 利用率飙升。因此,如果发生延迟,这可以防止资源被阻塞。此外,限界线程池也为下游服务的恢复提供了一些喘息的空间。
推荐阅读
- reactjs - 在不更改 JSX 的情况下覆盖 Material UI 类
- multithreading - cs0123 - 'ProgressChanged' 没有重载匹配委托 'EventHandler'
在 .net 核心中 - react-native - 使用来自 url 的自定义声音对本机警报做出反应
- java - 构建 snap 时如何添加 javafx sdk
- python - 如何在python的数据框列中仅识别(而不是删除或替换)带有前导,尾随空格和双(以及更多)空格的字符串?
- php - 具有相同 id 的组数组
- javascript - 谷歌应用程序脚本 - 在下一个空行中写入数据
- replace - Notepad ++:选择整个列并将其转换为字符串
- python - 来自两个字典的 Python 打印
- android - 在不同设备的情况下布局行为不符合预期