【发布时间】:2021-02-07 16:37:47
【问题描述】:
请问是否可以使用弹性 4j 在客户端记录重试尝试?
也许通过某种配置或设置。
目前,我正在使用带有 Spring boot Webflux 基于注释的resilience4j。
效果很好,这个项目很棒。
虽然我们将服务器日志放在服务器端,但要查看由于重试而进行了相同的 http 调用(我们记录时间、客户端 IP、请求 ID 等...)我是否可以拥有客户端日志?
我期待看到类似“Resilience4j - 客户端:第一次尝试因 someException 失败,以参加号 2 重试。第二次尝试因 someException 而失败,以参加号 3 重试。第三次尝试成功!”
类似的东西。是否有一个属性,一些配置,一些设置,可以帮助轻松做到这一点?无需添加过多的锅炉代码。
@RestController
public class TestController {
private final WebClient webClient;
public TestController(WebClient.Builder webClientBuilder) {
this.webClient = webClientBuilder.baseUrl("http://localhost:8443/serviceBgreeting").build();
}
@GetMapping("/greeting")
public Mono<String> greeting() {
System.out.println("Greeting method is invoked ");
return someRestCall();
}
@Retry(name = "greetingRetry")
public Mono<String> someRestCall() {
return this.webClient.get().retrieve().bodyToMono(String.class);
}
}
谢谢
【问题讨论】:
-
您确定客户端必须重试吗?你怎么知道的?
标签: java spring-webflux resilience4j