Resilience4j 与 Hystrix。什么是最好的容错能力?

问题描述 投票:0回答:2

当我最初学习 Spring Boot 时,我了解了

spring cloud netflix hystrix
作为断路器。有很多选项,例如多个应用程序属性和用于容错的注释基声明。除此之外,它也没有什么重要的阈值。最重要的是
hystrix
可以通过
hystrix dashboard
提示数据到
hystrix streams
。通过使用
turbine
,我们可以组合多个
hystrix streams
和概览微服务。这是我的经验
hystrix

现在我需要实现

Resilience4j
,它基本上支持相同的容错行为。我是
Resilience4j
的新手,我想在开始之前了解这两个容错选项的主要区别。根据我的研究,
Resilience4j
是比
hystrix
更强大的选择。我很高兴了解专家的事实并谢谢您。

spring-boot hystrix circuit-breaker fault-tolerance resilience4j
2个回答
5
投票

我可以说,您选择哪种实现并不重要,除非存在有利于特定实现的特定要求。我宁愿选择 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

让我强调这一点:“从架构的角度来看,我发现更重要的是建立一个可以根据需要轻松替换此类实现的环境。”

我建议使用 Spring Cloud Circuit Breaker 作为具有一致 API 的框架,并允许开发人员选择实现:Netflix Hystrix、反应式或非反应式 Resilience4j、Sentinel 和 Spring Retry。

所有都可以根据需要进行配置,并且都提供基本的默认配置来更改值阈值、慢调用阈值、滑动窗口大小等。


5
投票

两者之间最显着的区别是,虽然 Hystrix 采用面向对象的设计,其中调用外部 系统必须封装在 HystrixCommand 中,提供多个 功能,Resilience4J 依靠函数组合来让 您可以堆叠所需的特定装饰器。

来源: 断路器模式:从 Hystrix 迁移到 Resilience4J


Resilience4J 是一个受 Hystrix 启发但基于函数式编程原理构建的独立库。 Resilience4J 将是处理容错的最佳选择。

© www.soinside.com 2019 - 2024. All rights reserved.