【问题标题】:spring-cloud-circuitbreaker with reactive resilience4j具有反应弹性的弹簧云断路器4j
【发布时间】:2019-10-23 03:25:27
【问题描述】:

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

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

这是我的例子

    @GetMapping("/")
    public Mono<String> hello() {
        return webClient.build()
                .get().uri(uriBuilder -> uriBuilder
                        .scheme("http")
                        .host("slow-service").path("/slow")
                        .build())
                .retrieve().bodyToMono(String.class).transform(it -> {
                    CircuitBreaker cb = circuitBreakerFactory.create("slow");
                    return cb.run(() -> it, throwable -> Mono.just("fallback"));
                });
    }

使用以下配置:

    @Bean
    public Customizer<ReactiveResilience4JCircuitBreakerFactory> defaultCustomizer() {
        return factory -> factory.configureDefault(id -> new Resilience4JConfigBuilder(id)
                .circuitBreakerConfig(ofDefaults())
                .timeLimiterConfig(TimeLimiterConfig.custom().timeoutDuration(Duration.ofSeconds(3)).build()).build());
    }

    @Bean
    @LoadBalanced
    public WebClient.Builder webClient() {
        return WebClient.builder();
    }


【问题讨论】:

    标签: spring-cloud resilience4j


    【解决方案1】:

    【讨论】:

    • 谢谢瑞恩。是的当然。我配置了ReactiveCircuitBreakerFactory,但使用的是自动配置的CircuitBreakerFactory
    猜你喜欢
    • 2020-06-17
    • 2019-07-23
    • 2021-04-17
    • 1970-01-01
    • 2019-02-11
    • 2018-07-03
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多