美文网首页
28.实现FallbackFactory容错获取异常

28.实现FallbackFactory容错获取异常

作者: LANSHENGYANG | 来源:发表于2020-05-29 15:40 被阅读0次

实现FallbackFactory容错获取异常

  • 第1步:编写ProductServiceFallbackFactory类实现FallbackFactory接口
/**
 * 这是容错类,它要求我们要实现一个FallbackFactory<要为哪个接口产生容错类>
 */
@Slf4j
@Service
public class ProductServiceFallbackFactory implements FallbackFactory<ProductService> {

    /**
     * 容错方法
     * @param throwable feign在调用过程中产生的异常
     * @return
     */
    @Override
    public ProductService create(Throwable throwable) {
        return new ProductService() {
            @Override
            public Product findByPid(Integer pid) {
                log.error("{}",throwable);
                //容错逻辑
                Product product = new Product();
                product.setPid(-100);
                product.setPname("远程调用商品微服务出现异常了,进入了容错逻辑");
                return product;
            }
        };
    }
}
  • 第2步:修改ProductService
/**
 * value:指定那个微服务
 * fallback:指定当前feign接口的容错类
 */
@FeignClient(
        value = "service-product",
        //fallback = ProductServiceFallBack.class,
        fallbackFactory = ProductServiceFallbackFactory.class
)
public interface ProductService {

    /* @FeignClient的value + @RequestMapping的value值,其实就是一个完整的请求地址
     * http://service-product/product/{pid}
     */
    @RequestMapping("/product/{pid}")
    Product findByPid(@PathVariable("pid") Integer pid);
}

相关文章

网友评论

      本文标题:28.实现FallbackFactory容错获取异常

      本文链接:https://www.haomeiwen.com/subject/nttfzhtx.html