java – 为什么hystrix或任何其他用于微服务的断路器?

我正在开发带有弹簧靴和弹簧云的微服务.我开始了解hystrix和断路器模式.我知道断路器用于响应备用响应,以防下游微服务发生错误,我依赖它来获取数据.我的问题是,如果我没有提供任何有意义的替代响应,为什么我需要一个断路器呢?
最佳答案
简短回答:主要是为了阻止复杂分布式系统中的级联故障.

I don’t have any meaningful alternative response to provide, why would
I need a circuit breaker at all?

仅当您的服务器仅提供单个REST端点(以及单个HTTP谓词)时,此问题才有意义.但几乎总是如此,情况并非如此.即使是’微服务’也会有多个端点组合多个http动词.在线程在那里等待并最终降低整个应用程序之后,您不希望一个端点挂起缓慢的下游微服务和堆积线程.

阅读官方documentation

What Is Hystrix For?
— Hystrix is designed to do the following:

  • Give protection from and control over latency and failure from dependencies accessed (typically over the network) via third-party
    client libraries.
  • Stop cascading failures in a complex distributed system.
  • Fail fast and rapidly recover.
  • Fallback and gracefully degrade when possible.
  • Enable near real-time monitoring, alerting, and operational control.

“在可能的情况下,后退和优雅降级”只是hystrix提供的功能之一.

转载注明原文:java – 为什么hystrix或任何其他用于微服务的断路器? - 代码日志