spring boot 2.7 + seata +微服务 降级失败问题修复
// 添加配置 feign.circuitbreaker.enabled=true
// 自定义 Feign.Builder 对应的Bean的初始化
@Bean
@ConditionalOnBean(CircuitBreakerFactory.class)
public Feign.Builder circuitBreakerFeignBuilder(BeanFactory beanFactory) throws Exception {
// 此处需要通过反射的方式实现,原因。。。。自己看源码
Constructor<SeataFeignClient> declaredConstructor =
SeataFeignClient.class.getDeclaredConstructor(BeanFactory.class);
declaredConstructor.setAccessible(Boolean.TRUE);
SeataFeignClient seataFeignClient = declaredConstructor.newInstance(beanFactory);
return FeignCircuitBreaker.builder().client(seataFeignClient);
}