Resilience4j 轻量级的容错组件开源项目

我要开发同款
匿名用户2018年08月21日
75阅读

技术信息

开源地址
https://github.com/resilience4j/resilience4j
授权协议
Apache

作品详情

Resiliece4j是一个轻量级的容错组件,其灵感来自于Hystrix,但主要为Java8和函数式编程所设计。轻量级体现在其只用Vavr库(前身是Javaslag),没有任何外部依赖。而Hystrix依赖了Archaius,Archaius本身又依赖很多第三方包,例如Guava、ApacheCommosCofiguratio等。

限速组件架构:

Resiliece4j提供了如下几款核心组件

resiliece4j-circuitbreaker:Circuitbreakig

resiliece4j-ratelimiter:Ratelimitig

resiliece4j-bulkhead:Bulkheadig

resiliece4j-retry:Automaticretryig(sycadasyc)

resiliece4j-cache:Resposecachig

附件组件包括:

resiliece4j-reactor:SprigReactoradapter

resiliece4j-rxjava2:RxJava2adapter

resiliece4j-micrometer:MicrometerMetricsexporter

resiliece4j-metrics:DropwizardMetricsexporter

resiliece4j-prometheus:PrometheusMetricsexporter

resiliece4j-sprig-boot:SprigBootStarter

resiliece4j-ratpack:RatpackStarter

resiliece4j-retrofit:RetrofitCallAdapterFactories

resiliece4j-vertx:VertxFuturedecorator

resiliece4j-cosumer:CircularBufferEvetcosumer

使用示例:

CircuitBreaker,RetryadFallback

RateLimiter

Bulkhead

Cache

Metrics

Cosumeemittedevets

使用Resiliece4j实现请求调用频率限制的示例代码:

// Create a custom RateLimiter cofiguratioRateLimiterCofig cofig = RateLimiterCofig.custom()    .timeoutDuratio(Duratio.ofMillis(100))    .limitRefreshPeriod(Duratio.ofSecods(1))    .limitForPeriod(1)    .build();// Create a RateLimiterRateLimiter rateLimiter = RateLimiter.of("backedName", cofig);// Decorate your call to BackedService.doSomethig()Supplier<Strig> restrictedSupplier = RateLimiter    .decorateSupplier(rateLimiter, backedService::doSomethig);// First call is successfulTry<Strig> firstTry = Try.ofSupplier(restrictedSupplier);assertThat(firstTry.isSuccess()).isTrue();// Secod call fails, because the call was ot permittedTry<Strig> secodTry = Try.of(restrictedSupplier);assertThat(secodTry.isFailure()).isTrue();assertThat(secodTry.getCause()).isIstaceOf(RequestNotPermitted.class);

功能介绍

Resilience4j 是一个轻量级的容错组件,其灵感来自于 Hystrix,但主要为 Java 8 和函数式编程所设计。轻量级体现在其只用 Vavr 库(前身是 Javaslang),没有任...

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论