spring-cloud-openfeign icon indicating copy to clipboard operation
spring-cloud-openfeign copied to clipboard

set common fallback of circuitbreaker in FeignCircuitBreakerInvocationHandler

Open chocolateaya opened this issue 3 years ago • 0 comments
trafficstars

hello,I want to set common fallback in circuitbreaker when use feign and resiliense4j,not add @fallback in every @FeignClient. Now I rewrite FeignCircuitBreaker class and FeignCircuitBreakerInvocationHandler class.I want to set in FeignClientsConfiguration by circuitBreakerFeignBuilder()

 @Configuration(proxyBeanMethods = false)
	@ConditionalOnClass(CircuitBreaker.class)
	@ConditionalOnProperty("feign.circuitbreaker.enabled")
	protected static class CircuitBreakerPresentFeignBuilderConfiguration {
		@Bean
		@Scope("prototype")
		@ConditionalOnMissingBean({ Feign.Builder.class, CircuitBreakerFactory.class })
		public Feign.Builder defaultFeignBuilder(Retryer retryer) {
			return Feign.builder().retryer(retryer);
		}

		@Bean
		@Scope("prototype")
		@ConditionalOnMissingBean
		@ConditionalOnBean(CircuitBreakerFactory.class)
		public Feign.Builder circuitBreakerFeignBuilder() {
			return FeignCircuitBreaker.builder();
		}

	}

And my way is

@Configuration
public class FeignConfig {

	@Bean
	@ConditionalOnBean({CircuitBreaker.class, CircuitBreakerFactory.class})
	@Scope("prototype")
	public Feign.Builder circuitBreakerFallbackFeignBuilder() {
		return FeignCircuitBreakerFallback.builder();
	}
}

but it is not work.

Could you give me some suggestion?

chocolateaya avatar Apr 22 '22 08:04 chocolateaya