前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个feign使用不当的问题

一个feign使用不当的问题

作者头像
itliusir
发布2018-08-28 16:01:28
1.9K0
发布2018-08-28 16:01:28
举报
文章被收录于专栏:刘君君刘君君

摘要: 一个feign使用不当的问题

正文:

一个错误的示例

接口与回退逻辑

代码语言:javascript
复制
@FeignClient(name = "service-A",fallback=AServiceFallback.class )
public interface AService {
  @RequestMapping(value = "/aApi/getA", method = RequestMethod.GET)
  List<AInfo> getA();
}
@Slf4j
public class AServiceFallback implements AService{
  @Override
  public List<AInfo> getA() {
    log.error("进入回退方法:异常");
  }
}

配置文件

代码语言:javascript
复制
hystrix:
    command:
        default:
            execution:
                isolation:
                    thread:
                        timeoutInMilliseconds: 50000
ribbon:
    ReadTimeout: 60000
    ConnectTimeout: 60000
    eureka:
        enabled: true

以上配置在不熟悉feign-hystrix 或者查看 Feign Hystrix Fallbacks 的可能感觉并没有问题,项目启动也是正常

正确使用方式

接口与回退逻辑

代码语言:javascript
复制
@FeignClient(name = "service-A",fallback=AServiceFallback.class )
public interface AService {
  @RequestMapping(value = "/aApi/getA", method = RequestMethod.GET)
  List<AInfo> getA();
}
@Slf4j
@Component
public class AServiceFallback implements AService{
  @Override
  public List<AInfo> getA() {
    log.error("进入回退方法:异常");
  }
}

配置文件

代码语言:javascript
复制
hystrix:
    command:
        default:
            execution:
                isolation:
                    thread:
                        timeoutInMilliseconds: 50000
ribbon:
    ReadTimeout: 60000
    ConnectTimeout: 60000
    eureka:
        enabled: true
feign:
  hystrix:
    enabled: true

可以看到,在配置文件中新增了feign.hystrix.enabled = true 进行激活,如果代码不变启动项目会报:

代码语言:javascript
复制
Caused by: java.lang.IllegalStateException: No fallback instance of type class com.yss.xx.feign.fallback.AServiceFallback found for feign client service-A

可以参考Feign Hystrix Support ,也可以在回退逻辑接口的类上面使用Spring 通用模式装配注解@ComponentAServiceFallback进行装配

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正文:
    • 一个错误的示例
      • 正确使用方式
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档