当我刚开始学习弹簧引导时,我已经了解到spring cloud netflix hystrix
是一种断路器。有许多选项,如用于容错的多个应用程序属性和批注基声明。除此之外,它几乎没有重要的阈值。最重要的是,hystrix
可以通过hystrix streams
将数据提示到hystrix dashboard
。通过使用turbine
,我们可以将多个hystrix streams
和概览微服务结合起来。这是我在hystrix
的经验。
现在,我有了一个实现Resilience4j
的要求,它基本上支持相同的容错行为。我是Resilience4j
新手,我想在开始之前了解这两种容错选项的主要区别。根据我的研究,Resilience4j
是一个比hystrix
更强大的选择。我希望了解专家的事实,并感谢你。
发布于 2022-06-02 04:36:44
我可以说,您选择什么样的实现并不重要,除非有特定的需求有利于特定的实现。我宁愿从Netflix那里选择任何东西,因为它在2018年(https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now)处于维护模式。读取GitHub:https://github.com/Netflix/Hystrix#hystrix-status上的Hystrix状态。
让我强调这一点:“从架构的角度来看,我发现更重要的是启用一个易于根据需要替换此类实现的环境。”
我可以推荐使用作为一个具有一致API的框架,并允许开发人员选择实现: Netflix、反应性或非反应性Resilience4j、哨兵和Spring。
所有这些都可以根据需要进行配置,并且都提供了一个基本的默认配置来更改值阈值、慢呼叫阈值、滑动窗口大小等。
发布于 2022-06-02 04:22:59
这两者之间最显著的区别在于,尽管Hystrix包含一个面向对象的设计,其中对外部系统的调用必须封装在提供多个功能的HystrixCommand中,但Resilience4J依赖于功能组合来堆叠所需的特定装饰器。
因为,Resilience4J是一个独立的库,它受Hystrix的启发,但基于函数式编程的原则。Resilience4J将是处理容错的最佳选择。
https://stackoverflow.com/questions/70587963
复制相似问题