4

我将 Resilience4j @Retry 与 @CircuitBreaker 结合使用。我在 SpringBoot 2 中使用注释,我的配置在application.yml中。我在@Retry 注释中有一个后备方法,但在@CircuitBreaker 中没有(这是使它们一起工作的方法,因为根据我的发现的方面顺序)。

@CircuitBreaker 使用我在 application.yml 中的配置可以正常工作。重试也有效,但仅使用默认配置值并且不反映application.yml中的值(例如:maxAttempts 是 3 而不是 5)。

知道我在这里可能做错了什么吗?

在代码中:

@CircuitBreaker(name = "myService")
@Retry(name = "myService", fallbackMethod="myServiceFallback")
public HttpEntity myService(final String url) throws MyException{ 
//My logic 
}

application.yml 中的配置

4

1 回答 1

4

挑出来。

我 在这里提到的配置中 使用了maxAttempts : https ://resilience4j.readme.io/docs/retry

正确的配置名称是maxRetryAttempts,如下所示: https ://github.com/resilience4j/resilience4j-spring-boot2-demo/blob/master/src/main/resources/application.yml

resilience4j.retry:
    configs:
        default:
            maxRetryAttempts: 3
            waitDuration: 100
...
于 2020-06-02T10:06:00.600 回答