fallbackFactory与fallback方法不能同时使用,这个两个方法其实都类似于Hystrix的功能,当网络不通时返回默认的配置数据。
fallbackFactory用法捕获异常案例
FeignClient客户端
此类中的@FeignClient中fallbackFactory属性指定熔断降级处理的类为WebFeignFallbackFactory。
1 2 3 4 5 6 7
| import ...
@FeignClient(value = "server-feign" ,fallbackFactory = WebFeignFallbackFactory.class) public interface WebFeignService { @PostMapping(value = "/Test") public Object Test(@RequestBody Object o); }
|
WebFeignFallbackFactory 降级类
注意FallbackFactory这里引入是包是hystrix, import feign.hystrix.FallbackFactory;
这是实现FallbackFactory<泛型 > implements FallbackFactory, 此类实现FallbackFactory类,并实现方法T create(Throwable throwable);
其中throwable.getMessage(); 就是服务回退时的异常信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import ...
@Component @Slf4j public class WebFeignFallbackFactory implements FallbackFactory<WebFeignService>{
@Override public WebFeignService create(Throwable throwable) { log.error("异常原因:{}", throwable.getMessage(), throwable); return new WebFeignService(){ @Override public Object Test(Object o) { return throwable.getMessage(); } }; } }
|