前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringCloud-Hystrix【Feign处理降级-异常记录】

SpringCloud-Hystrix【Feign处理降级-异常记录】

作者头像
用户4919348
发布2019-06-15 15:22:13
2.5K0
发布2019-06-15 15:22:13
举报
文章被收录于专栏:波波烤鸭波波烤鸭

  前面的文章介绍了Hystrix处理Feign调用时的降级处理,但是现在有个问题是如果我们调用provider服务的时候出现了故障从而返回了托底数据,我们怎么查看故障的日志信息呢?前面的处理我们是无法获取到consumer调用provider的错误信息的。

在这里插入图片描述
在这里插入图片描述

Feign降级记录异常信息

1.创建项目

  创建一个普通的SpringCloud项目

在这里插入图片描述
在这里插入图片描述

2.基本设置

  相关的依赖和前面的项目是一样的。

在这里插入图片描述
在这里插入图片描述

3.添加FallbackFactory类

  添加一个Hystrix返回托底数据的工具类,如下:

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
@Component
public class ProductServiceFallbackFactory implements FallbackFactory<ProductConsumerService> {

    private Logger logger = Logger.getLogger(ProductServiceFallbackFactory.class);

    @Override
    public ProductConsumerService create(Throwable throwable) {
        return new ProductConsumerService() {
            /**
             * 能够返回托底数据的 fallback 方法
             * @return
             */
            @Override
            public List<Product> findAll() {
                // log 异常信息
                logger.warn("fegin fallback Exception:"+throwable);
                List<Product> list = new ArrayList<>();
                list.add(new Product(-1, "我是托底数据"));
                return list;
            }
        };
    }
}

注意:实现的接口必须是FallbackFactory而泛型为业务接口。重新create方法,返回的是业务接口的匿名内部类,在内部类中返回托底数据,同时在该方法中记录异常日志信息。

4.业务层设置

注意将原来的fallback属性改为fallbackFactory属性。

代码语言:javascript
复制
/**
 * feign 做服务降级处理
 *    不需要继承 ProductService接口
 * fallback属性关联托底数据类
 */
@FeignClient(name="shop-product-provider" ,fallbackFactory = ProductServiceFallbackFactory.class)
public interface ProductConsumerService  {

    @RequestMapping(value="/product/findAll",method= RequestMethod.GET)
    public List<Product> findAll();

}

5.测试

  不启动provider的情况下,启动consumer访问,返回托底数据,然后查看日志信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

控制台能够看到我们记录的异常日志信息~ 案例代码:https://github.com/q279583842q/SpringCloud-dpb-Demo

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Feign降级记录异常信息
    • 1.创建项目
      • 2.基本设置
        • 3.添加FallbackFactory类
          • 4.业务层设置
            • 5.测试
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档