Spring env,我是不是仍应在新项目中使用 Hystrix

Posted

技术标签:

【中文标题】Spring env,我是不是仍应在新项目中使用 Hystrix【英文标题】:Spring env, should I still use Hystrix on new projectSpring env,我是否仍应在新项目中使用 Hystrix 【发布时间】:2020-09-03 22:27:12 【问题描述】:

似乎 hystrix 已接近生命尽头,而 netflix 堆栈现在有点过时了。 我们正在为一个全新的项目构建一个堆栈,我们需要一个断路器,我们的默认选择是 hystrix,因为它是众所周知的并且受到团队的赞赏。

今天hystrix已经完全集成到spring cloud了,有没有计划尽快移除呢?

【问题讨论】:

Resilience4j 是不错的选择。它还与 Spring Boot 很好地集成在一起。这是示例源代码的链接 - github.com/greenlearner01/resilience4j Hystrix 不会收到任何更新,因为它现在已切换到仅维护模式。改用 Resiliense4j 【参考方案1】:

Hystrix 不兼容 SpringBoot Greenwich RS6 以上版本。过滤器和后备方法已被弃用,不再起作用。 Hystrix 绝对不是选择。

【讨论】:

【参考方案2】:

绝对不是。 Spring Cloud Hystrix 位于 maintenance mode 中,从 2020.0.0 发布系列开始将不再可用(this commit 已删除支持)。 Resilience4J 是一个很好的替代品。

【讨论】:

【参考方案3】:

Spring Cloud Circuit breaker 提供跨不同断路器实现的抽象。它提供了在您的应用程序中使用的一致 API,让您开发人员可以选择最适合您的应用程序需求的断路器实现。

支持的实现

Netfix Hystrix

Resilience4J

哨兵

春季重试

使用它的主要好处是您可以选择不同的断路器库。从一个痛点迁移到另一个痛点更少。

official website 上有很好的文档和示例代码

【讨论】:

【参考方案4】:

Resilience4j 是受 Hystrix(来自 Netflix)启发的断路器。 您可以在他们的网页或github 上阅读有关该项目的更多信息,但简而言之:

Resilience4j 是一个轻量级、易于使用的容错库,其灵感来自 Netflix Hystrix,但专为 Java 8 和函数式编程而设计。

他们也有一个 getting-started 用于 spring-cloud =)

编辑:重写第一句话更不用说它来自 Netflix,因为我不确定 =)

【讨论】:

是 Netflix 的 reslience4j 吗?对此有任何参考吗? 不知道这是一个 netflix 项目! 乍一看,我会说是的......但我可能会在找到参考/来源后立即更新答案。但是您可以在 Hystrix github 页面上清楚地看到他们正在使用并推荐 resilience4j 用于新项目。 Hystrix 已经存在很长时间了,并启发了许多断路器库。 Resilience4j 就是其中之一,具有许多改进和新功能。 感谢您的提醒...相应地更新了我的答案。

以上是关于Spring env,我是不是仍应在新项目中使用 Hystrix的主要内容,如果未能解决你的问题,请参考以下文章

在 Pypi 上注册一个内部包

我的 Web 应用程序是不是仍应支持 iOS 3.2 上的 Safari 4.0.4?

类定义中的静态数据成员初始化?

从 Spring Boot 项目部署战争

JWT 令牌作为 API 中用户详细信息的来源?

如何通过属性文件而不是通过 env 变量或系统属性设置活动 spring 3.1 环境配置文件