使用 Spring Reactor 时为什么要使用断路器和隔板?

LIv*_*nov 5 circuit-breaker project-reactor resilience4j

请帮助我找到断路器和隔板模式在 Spring Reactor 应用程序中有用的原因。

由于 Reactor 中的操作将是非阻塞的,并且这两种模式旨在节省对资源(主要是线程)的潜在影响,因此在什么情况下我可以使 Spring Reactor 应用程序中的模式受益。我此时看到的唯一一件事是,如果请求量非常大,以至于将它们保留在内存中,那么在等待超时(而不是断路器启动并回落)时,我们会运行 OOM。

Mar*_*nyi 1

除了保护您自己的应用程序之外,这些模式还可以帮助您保护外部服务(REST API、数据库等):如果延迟和/或错误率增加,您可以为它们提供恢复空间。应用程序中的快速失败也是有益的,因为您不会让最终用户等待错误太久。

Resilience4j 为这些模式提供专用的Reactor 支持,以代替已弃用的 Hystrix 库。

  • 就我而言,保护外部服务不是我关心的问题,我想外部服务应该照顾好自己。除此之外,快速失败确实是有益的,感谢您的回答 - 不过,期待更多的想法 (2认同)