当我最初了解 Spring Boot 时,我已经了解了spring cloud netflix hystrix
作为断路器。有很多选项,比如多个应用程序属性和用于容错的注解基础声明。除此之外,它也有一些重要的阈值。最重要的是hystrix
,数据可以通过hystrix streams
提示到hystrix dashboard
。通过使用turbine
,我们可以合并组合多个hystrix streams
和概览微服务。这是我在hystrix
上的经验。
现在我需要实现Resilience4j
,它基本上支持相同的容错行为。我是Resilience4j
的新手,我想在开始之前知道这两个容错选项的主要区别。根据我的研究,Resilience4j
比hystrix
更健壮。我将很高兴知道Maven的事实,并感谢你。
2条答案
按热度按时间qgelzfjb1#
我可以说,选择哪种实现并不重要,除非有特定的需求有利于特定的实现。我不会从Netflix Hystrix中选择任何东西,因为它在2018年处于维护模式(https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now)。阅读GitHub上的Hystrix状态:https://github.com/Netflix/Hystrix#hystrix-status。
让我强调这一点:* “从架构的Angular 来看,我发现更重要的是启用一个可以根据需要轻松替换此类实现的环境。"*
我推荐使用Spring Cloud Circuit Breaker作为框架,它具有一致的API,并允许开发人员选择实现:Netflix Hystrix、React性或非React性Resilience4j、Sentinel和Spring Resilience。
所有这些都可以根据需要进行配置,并且所有这些都提供了基本的默认配置,以更改值阈值,慢速调用阈值,滑动窗口大小等。
fzwojiic2#
两者之间最突出的区别是,虽然Hystrix采用面向对象的设计,其中对外部系统的调用必须 Package 在提供多种功能的HystrixCommand中,但Resilience4J依赖于函数组合,让您可以堆叠所需的特定装饰器。
Resilience4J是一个独立的库,灵感来自Hystrix,但基于函数式编程的原则。Resilience4J将是处理 * 容错 * 的最佳选择。