OpenFeign远程调用返回数据总是为null(已解决)

 先说一下我遇到的问题,服务A去远程调用服务B,返回的数据总是为null,但是服务B的接口测试是正常的,能正常返回数据,后来我发现远程调用出了问题,走了我的降级方法,降级方法里返回的是null

于是经过我的各种查阅资料和询问帮助,总结出了以下几点可能出现问题的原因:

1.首先要保证你的controller方法地址和你的feign的地址要一样

 2.调用方的主启动类上加注解

该注解默认扫描的位置是该启动类所在的包以及子包,要确保能扫描到feign!

3.时间问题(也是本人遇到的....)

检查完其他地方没有问题以后,我重启服务,发现还是调不通,一直走降级方法,返回null值,其实这里边不存在任何问题,原因直接上图:

 重启完微服务A、B以后,服务B需要先注册到nacos注册中心,然后服务A需要到nacos注册中心拉取到服务B,这样才能通过OpenFeign调通,这里的等待时间稍长一些,可能会有5s左右!

如果服务A还没有从nacos拉取到服务B,那必然会调用失败,走降级方法。多等待一会就好了....

我就是重启完服务以后就立即去测试,导致一直调不通,一直失败,就以为是哪里出了问题,搞了半天是这个问题............

希望能够帮助到各位!借此记录,立文避坑!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
OpenFeign是一个用于微服务项目中的服务远程调用的工具,它与Spring整合通过两个核心注解@FeignClient和@EnableFeignClients来实现。@EnableFeignClients注解用于开启OpenFeign,在启动类上添加该注解后,Spring容器将会扫描被@FeignClient注解修饰的接口,并生成相应的代理对象。 生成@FeignClient注解接口的代理对象是从FeignClientFactoryBean的getObject方法开始的。具体而言,代理对象的生成主要由ReflectiveFeign对象来实现。调用代理对象实际上就是发起http请求,请求结果会被解码并返回。因此,OpenFeign将http远程调用伪装成了本地调用,对于使用者来说,调用远程接口就像调用本地接口一样简单。 总结一下OpenFeign的工作流程:首先,通过@EnableFeignClients注解开启OpenFeign;然后,OpenFeign扫描被@FeignClient修饰的接口;接下来,根据被修饰的接口生成相应的代理对象;最后,使用代理对象发起http请求,并将请求结果解码返回调用者。 因此,OpenFeign远程调用原理可以概括为通过代理对象将远程调用转化为http请求,并将请求结果解码返回调用者。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [OpenFeign的服务调用原理](https://blog.csdn.net/qq_42098875/article/details/118994449)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平常心_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值