【发布时间】:2021-02-04 14:11:02
【问题描述】:
我对 Bulkhead 模式的理解是,它是一种隔离线程池的方式。因此,与不同服务的交互使用不同的线程池:如果共享同一个线程池,一个服务不断超时可能会耗尽整个线程池,从而中断与其他(健康)服务的通信。通过使用不同的,可以减少影响。
根据我的理解,我认为没有任何理由将此模式应用于非阻塞应用程序,因为线程不会被阻塞,因此线程池不会被耗尽。
如果有人能澄清这一点,以防我遗漏了什么,我将不胜感激。
编辑(解释为什么它不是重复的):
关于why using Circuit-Breaker and Bulkhead patterns with Reactor 还有另一个(更通用的)问题。这个问题的回答非常笼统,解释了为什么所有 Resilience4J 装饰器在使用 Reactor 时都是相关的。
另一方面,我的问题是 Bulkhead 模式特有的,因为我不明白它在线程不被阻塞的情况下的好处。
【问题讨论】:
-
感谢您回复@MartinTarjányi。我看到了这个问题,但我认为答案并不能真正解决我的疑问。我仍然不明白为什么我们需要单独的线程池,而它们的线程不会被阻塞。
标签: spring-webflux project-reactor resilience4j