Resilience4j是专为Java8和函数式编程设计的容错库

栏目: Java · 发布时间: 5年前

内容简介:Netflix OSS的Hystrix替代品与Netflix Hystrix的一些差异:

Netflix OSS的Hystrix替代品 Resilience4j是一个轻量级容错库,受 Netflix Hystrix 启发,但专为 Java 8和函数式编程而设计。轻量级,因为库只使用 Vavr(以前称为Javaslang) ,它没有任何其他外部库依赖项。相比之下,Netflix Hystrix对 Archaius 具有编译依赖性, Archaius 具有更多外部库依赖性,例如Guava和Apache Commons Configuration。使用Resilience4j,你不必全押,你可以选择你需要的东西。

与Netflix Hystrix的一些差异:

  • 在Hystrix中,对外部系统的调用必须包含在HystrixCommand中。相比之下,本库包提供了高阶函数(装饰器),以通过 断路器 ,速率限制器或隔板增强任何函数接口,lambda表达式或方法引用。此外,库提供的装饰器来重试失败的调用或缓存调用结果。您可以在任何函数接口、lambda表达式或方法引用上堆叠多个装饰器。这意味着,您可以将隔板Bulkhead,RateLimiter和Retry装饰器与CircuitBreaker装饰器结合使用。优点是您可以选择所需的装饰器,而不是其他任何东西。任何修饰函数都可以使用CompletableFuture或RxJava同步或异步执行。
  • 默认情况下,Hystrix将执行结果存储在10个1秒的窗口桶中。如果传递1秒窗口桶,则会创建一个新桶,并删除最旧的桶。该库将执行结果存储在Ring Bit Buffer中,而没有统计滚动时间窗口。成功的呼叫存储为0位,失败的呼叫存储为1位。Ring Bit Buffer具有可配置的固定大小,并将这些位存储在long []数组中,与布尔数组相比,这节省了内存。这意味着Ring Bit Buffer只需要一个包含16个长(64位)值的数组来存储1024个调用的状态。优点是这个CircuitBreaker可以为低频和高频后端系统提供开箱即用的功能,因为在传递时间窗口时不会丢弃执行结果。
  • Hystrix仅在处于半开状态时执行单次执行,以确定是否关闭CircuitBreaker。该库允许执行可配置数量的执行,并将结果与​​可配置阈值进行比较,以确定是否关闭CircuitBreaker。
  • 该库提供自定义RxJava运算符来装饰任何Observable或Flowable使用Circuit Breaker,Bulkhead或Ratelimiter。
  • Hystrix和此库发出一系列事件,这些事件对系统操作员有用,可监控有关执行结果和延迟的指标。

以上所述就是小编给大家介绍的《Resilience4j是专为Java8和函数式编程设计的容错库》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

哥德尔、艾舍尔、巴赫

哥德尔、艾舍尔、巴赫

[美] 侯世达 / 严勇、刘皓明、莫大伟 / 商务印书馆 / 1997-5 / 88.00元

集异璧-GEB,是数学家哥德尔、版画家艾舍尔、音乐家巴赫三个名字的前缀。《哥德尔、艾舍尔、巴赫书:集异璧之大成》是在英语世界中有极高评价的科普著作,曾获得普利策文学奖。它通过对哥德尔的数理逻辑,艾舍尔的版画和巴赫的音乐三者的综合阐述,引人入胜地介绍了数理逻辑学、可计算理论、人工智能学、语言学、遗传学、音乐、绘画的理论等方面,构思精巧、含义深刻、视野广阔、富于哲学韵味。 中译本前后费时十余年,......一起来看看 《哥德尔、艾舍尔、巴赫》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具