在Spring中,什么是Hystrix?

33

有人能给我解释一下Hystrix是什么吗?我在Google上搜索了,但还是不太清楚。

  • Hystrix是什么?
  • 为什么要使用Hystrix?

请提供一个Hystrix使用的例子。


12
也许这个问题有些泛泛,但正是我这次作为来自谷歌的访客所想要了解的。我不同意负面看法。 - peterh
2个回答

56

什么是Hystrix?

Hystrix是由Netflix开发的库,是通过Spring Cloud Netflix项目的一部分。Hystrix是一个容错库,用作服务层中不同级别故障的策略。

为什么要使用Hystrix?

Hystrix可用于应用程序依赖远程服务的情况。如果一个或多个远程服务宕机,您可以在应用程序中使用断路器来处理这种情况。

简单来说:如何让一个服务继续运行——当它调用的外部服务失败时?

Hystrix会监视与相关服务通信的方法是否失败。如果有这样的失败方法,它将打开电路,这意味着它将调用一个回退方法。如果服务恢复正常,它将关闭电路,应用程序将再次按预期工作。

查看此优秀文章以获取更多背景信息。


17
讽刺的是,所有人告诉OP“只需Google一下”,而这个问题现在却成为了Hystrix谷歌搜索结果中的前几名之一。 - rurouniwallace
说得好,@Ataraxia。我讨厌在 Stack Overflow 上看到那种评论。“只要谷歌一下”——我确实谷歌了,这就是为什么我来这里的原因… - 8bitjunkie
请查看此博客,链接 - Shubham Srivastava

8

Hystrix是什么?

Hystrix是一个用于隔离对远程系统、服务和第三方库的访问点、防止级联故障并在必然发生故障的复杂分布式系统中实现弹性的延迟和容错库。

在分布式环境中,不可避免地会出现某些服务依赖失败的情况。Hystrix是一个库,通过添加延迟容忍度和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止它们之间的级联故障以及提供后备选项来实现这一点,从而提高系统的整体弹性。

它有哪些功能?

1)延迟和容错 停止级联故障。后备和优雅降级。快速失败和快速恢复。线程和信号量隔离以及断路器。

2)实时操作 实时监控和配置更改。当服务和属性更改时,观察更改立即生效并在整个群集中传播。在几秒钟内收到警报、做出决策、影响变化并查看结果。

3)并发性 并行执行。并发感知的请求缓存。通过请求合并实现自动批处理。

Hystrix的一些主要实现用于:

断路器

本指南介绍了如何使用Netflix Hystrix容错库将断路器应用于可能失败的方法调用。

Hystrix仪表板

Hystrix仪表板允许您实时监控Hystrix指标。

有关Hystrix的进一步信息,请访问https://github.com/Netflix/Hystrix/wiki/How-To-Use

有关Hystrix仪表板的更多信息,请访问https://github.com/Netflix/Hystrix/wiki/Dashboard


2
如果有人觉得这个回答没有用,能否请您评论一下这个回答哪里出了问题。我们欢迎任何建议。 - Sumanth Duvvuru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接