问题标签 [resilience4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2388 浏览

spring-boot-actuator - Resilience4j 和 Spring Actuator - 开路查杀服务

我已将以下依赖项添加到我的 Spring Boot 项目中

当断路器打开时,我在执行器/健康端点上收到以下响应,状态代码为 503 服务不可用:

}

我的 AWS ECS 容器运行状况检查使用此端点来确定其运行状况,并在非 200 响应时重新启动容器。

由于我不希望在断路器打开时重新启动我的服务,有没有办法让断路器打开,而不会导致服务状态关闭?

我知道registerHealthIndicator: false解决此问题的属性,但这会从执行器中删除断路器统计信息,我仍然希望看到。

0 投票
2 回答
2864 浏览

spring - Resilience4j + CircuitBreaker 的 Spring 实例

我想使用 Resilience4j 来处理容错,我正在使用 CircuitBreaker 和 TimerLimit。

我想分离容错行为的业务逻辑,以免“弄脏”我的业务代码。

所以,我正在考虑使用命令模式来执行我的方法,就像 Hystrix 使用 HystrixCommand 一样。

例子:

调用我的控制器:

我的疑惑:

1 - 在这种情况下,circuitBreaker 确实需要是静态的,因为我理解同一个对象需要在你想要威胁的同一个方法之间共享,我是对的吗?

2 - 我如何有这个应用程序的许多实例,断路器为每个实例单独工作?我是对的?

0 投票
1 回答
1269 浏览

spring-boot - 使用多个参数将 Resilience4j 断路器包裹在服务方法周围

Resilience4j-circuitbreaker 允许我们使用装饰器函数来包装服务,但据我所知,它只允许诸如供应商、消费者和函数之类的功能接口最多接受 1 个输入。

如果我有一个服务,它有一个接受 2 个参数的方法,我怎么能用断路器包装它?

https://www.baeldung.com/resilience4j

如果 process(int i) 类似于 process(int i, String s),那么哪个装饰器函数可以用于此目的?

0 投票
1 回答
412 浏览

resilience4j - 重试线程安全是否返回装饰函数?

我有一个向远程服务发送消息的类,如下所示。我正在使用resilience4j-retry 重试网络调用。由于根据文档重试实例是线程安全的,因此我在类级别创建它并重用它。

我的问题是返回的装饰函数Retry.decorateFunction(retry, this::postMessage);是否也是线程安全的?

在这种情况下,我可以将其移至类级别,而不是每次调用 postMessageWithRetry 函数时都重复它。

0 投票
1 回答
2105 浏览

spring-cloud - 具有反应弹性的弹簧云断路器4j

我对CircuitBreaker使用感到困惑WebClient。当依赖服务关闭时,不会执行回退。我需要额外的配置吗?

对于CircuitBreaker使用RestTemplate,无需任何进一步配置即可使用。在此处查看我的示例代码:https ://github.com/altfatterz/resilience4j-demo

这是我的例子

使用以下配置:

0 投票
1 回答
518 浏览

cloud - 请求折叠的 Hystrix 替代方案

随着 Netflix 正式将 Hystrix 置于维护模式(https://github.com/Netflix/Hystrix#hystrix-status),我开始寻找替代方案。当涉及到像断路器、隔板、重试和这些东西这样的模式时,有像弹性 4j 这样的不错的库,但是我找不到 Hystrix 可以做的请求崩溃的替代方案。

有人知道可以提供此类功能的库吗?

谢谢,本杰明

0 投票
1 回答
1464 浏览

java - 使用resilience4j 重试不适用于某些异常

我正在使用resilience4j库重试一些代码,我有以下代码,我希望它运行4次。如果我抛出 IllegalArgumentException 它可以工作,但如果我抛出 ConnectException 它不会。

我希望重试重试所有异常。

0 投票
2 回答
521 浏览

java - 如何从弹性4j TimeLimitter 中抛出自定义异常?

我正在使用弹性 4j 的 TimeLimiter 来控制 RestTemplate 调用的超时请求。如果 response.getBody() 为空,我将抛出一个自定义异常,但是在 getorElseThrow 中提供了 Resilience4j 总是抛出异常。如何在这里抛出自定义异常?

在这里,我正在尝试抛出“methodWhichThrowsCustomException”抛出的异常,但我无法做到这一点,它只会抛出此处抛出的异常。

0 投票
1 回答
2140 浏览

microservices - Resilience 4j 和 Prometheus 的集成

如何将 Resilience-4J 和 Prometheus 与微服务集成。

我已经将微服务与弹性 4j 以及 Prometheus 集成在一起。我的问题是,在 Prometheus 中我没有得到任何弹性查询,只有 HTTP 和其他默认的正在填充。

3>在 Prometheus Dashboard 弹性查询/矩阵中没有填充。

请帮忙。提前致谢

我还在下面添加了弹性 4j 和 Prometheus 集成的依赖项...

想要 Prometheus 仪表板上的弹性矩阵。

0 投票
1 回答
393 浏览

java - 可以将重试配置为在 null 上重试吗?

我刚开始使用resilience4j,想知道是否可以设置重试以重试空结果。这是一个例子:

这失败了,因为返回 null 是可以的。是否可以在 null 上配置重试。