xxxxxxxxxx
@Configuration
public class CircuitBreakerConfiguration {
@Bean
public Customizer<ReactiveResilience4JCircuitBreakerFactory> defaultCustomizer() {
return factory -> factory.configureDefault(id -> new Resilience4JConfigBuilder(id)
.circuitBreakerConfig(CircuitBreakerConfig.custom()
.slidingWindowSize(20)
.permittedNumberOfCallsInHalfOpenState(5)
.failureRateThreshold(50)
.waitDurationInOpenState(Duration.ofSeconds(60))
.build())
.build()
);
}
}
spring:
cloud:
gateway:
routes:
- id: restaurant-route
uri: http://localhost:9001/restaurants
predicates:
- Path=/restaurants/**
filters:
- name: CircuitBreaker
args:
name: restaurantCircuitBreaker
fallbackUri: forward:/restaurant-fallback