问题
项目使用FeignClient注解,fallbackFactory,fallback属性配置均不起作用。真正的降级方法并未执行;
解决方式
- 整合hystrix application.yml添加配置
feign:
hystrix:
enabled: true
circuitbreaker:
enabled: true
因为不同版本开启方式不同,如果想知道自己版本对应的开启方式,方式一可以去官网查看,方式二简单点直接按住ctrl建看看那个enabled能点进去出现spring-configuration-metadata.json即可采用此配置
- 整合sentinel,application.yml添加配置:
feign:
sentinel:
enabled: true
正确示例
- 启用openfeign
@EnableFeignClients
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
- 添加@FeignClient注解
@FeignClient(name = "feignService",url = "http://localhost:8080/feign/",fallbackFactory = DemoFallbackFactory.class)
public interface FeignService {
@GetMapping("/demo")
String getDemo();
}
- 添加fallbackFactory对应工厂类
@Component
public class DemoFallbackFactory implements FallbackFactory<FeignService> {
@Override
public FeignService create(Throwable throwable) {
return new FeignService() {
@Override
public String getDemo() {
return "降级";
}
};
}
}
评论区