我正在使用spring boot和spring cloud开发微服务。我开始了解hystrix和断路器模式。我知道断路器用于响应备用响应,以防下游微服务发生错误,我依赖它来获取数据。我的问题是,如果我没有提供任何有意义的替代响应,为什么我需要一个断路器?
答案 0 :(得分:5)
简短回答:主要是在复杂的分布式系统中阻止级联故障。
我没有提供任何有意义的替代回应,为什么会这样做 我需要断路器吗?
仅当您的服务器仅提供单个REST端点(以及单个HTTP谓词)时,此问题才有意义。但几乎总是如此,情况并非如此。即使是'微服务'也会有多个端点+多个http动词的组合。在线程在那里等待并最终降低整个应用程序之后,您不希望一个端点挂起缓慢的下游微服务和堆积线程。
阅读官方documentation
什么是Hystrix? --- Hystrix旨在执行以下操作:
- 通过第三方提供对访问(通常通过网络)的依赖项的延迟和故障的保护和控制 客户端库。
- 在复杂的分布式系统中停止级联故障。
- 快速失败并迅速恢复。
- 尽可能退回并优雅地降级。
- 启用近实时监控,警报和操作控制。
“尽可能后退和优雅降级”只是hystrix提供的功能之一。
答案 1 :(得分:0)
通过扩展HystrixCommand类,可以轻松完成。
output = np.array([[3, 2, 1],
[4, 6, 5],
[7, 3, 1]])