Feign 的fallbackFactory方法

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();
}
};
}
}
文章作者: GeYu
文章链接: https://nuistgy.github.io/2023/02/21/Feign降级两种方法/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yu's Blog