hystrix 如何创建他们的线程池

Posted

技术标签:

【中文标题】hystrix 如何创建他们的线程池【英文标题】:How hystrix creates their thread pool 【发布时间】:2016-10-11 00:15:21 【问题描述】:

我的应用程序正在 Websphere 应用程序服务器中运行。我正在使用 Hystrix 进行一些外部服务调用。 WAS 服务器有一个线程池配置,比如最大线程池大小为 10,HystrixThreadPoolProperties maxCoreSize 设置为 5。

我想知道 hystrix 是如何管理线程的。 hystrix 是从 WAS 服务器线程池中消耗 5 个线程,还是会使用 5 个新线程创建自己的线程池,这将导致总共 15 个线程。

就我而言,我希望 hystrix 使用 WAS 线程池中的线程,而不是创建新线程。请指教。

提前致谢。

【问题讨论】:

【参考方案1】:

Hystrix 作为所有通用库,它自己管理一个线程池,但提供了一种插入自定义线程池或执行器的方法。

为了将 Hystrix 与 WAS 之类的 JavaEE 服务器集成,您需要提供一个concurrency strategy,它使用托管执行器来提供线程。在大多数 JavaEE 服务器中(我很确定在 WAS 中也是如此),托管执行程序的线程池与 HTTP 线程默认使用的线程池不同 - 您仍然需要单独配置它们或同时指向两者以使用相同的线程池,如果服务器支持它。

【讨论】:

以上是关于hystrix 如何创建他们的线程池的主要内容,如果未能解决你的问题,请参考以下文章

Hystrix系列之信号量、线程池

8-29 实战技巧:如何设置线程池

Hystrix线程池配置

Hystrix-命令名称分组以及线程池划分

Hystrix线程隔离技术解析-线程池(转)

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