springcloud,通过fegin调用其他子服务,直接被熔断,走fullback的问题

    先说背景,是这样的。我们用的springcloud,做了微服务。

我的启动类,所在的目录如下:

大部分都是直接在com.lenovoedu目录下,而有的是在com.lenovoedu的子目录下。比如com.lenovoedu.newexam等。

我启动类的配置如下,所有的微服务都一样

问题就出在这里,只要启动类是直接在com.lenovoedu下面的,就能正常跟其他子服务进行通信。只要是在com.lenovoedu的子目录下的,就会直接被熔断,然后直接fullback.我的fullback如下,是自己定义的异常,直接抛出。

但是这样是看不到具体的异常信息的。再次,教大家一招,在fullback里直接抛出RunTimeException。你就能看到具体的异常信息了。如下:

然后我的异常信息如下:

猛一看,空指针。我去这不是客户端没有被注入吗。然后,肯定是没有扫描到啊。

但是我@ComponentScan(basePackages = {"com.lenovoedu"})配置了呀。

于是开始研究@ComponentScan和@EnableFeignClients的扫描。

@ComponentScan:此注解是用来管理容器中的bean,即是管理项目中类的依赖关系, 注意此注解并不创建类的实例; 默认情况下此注解扫描本工程下的所有包

@EnableFeignClients: 此注解的作用是扫描标记了@FeignClient的接口并创建实例bean,默认扫描并创建所在工程下的包。如果在springBoot的分布式中需要用到别的微服务的工程的接口实例,就需要单独配置。如果我的类都是在com.lenovoedu下,那么不单独配置也是可以的。所以才会出现文中刚开始说的问题,只要是在启动类直接在com.lenovoedu下的微服务间都能正常通信。

修改启动类配置如下后,通信正常:

推荐这篇博客看一下:

https://www.cnblogs.com/qiaoyutao/p/9813069.html

https://www.cnblogs.com/zhucww/p/10517089.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值