调用feign返回错误的数据

8 篇文章 0 订阅
4 篇文章 0 订阅

bug描述:

在一个请求方法中会调用到feign去获取其他的数据。

List<Demo> list = aaaFeignApi.getData(personSelectGetParam);

在调用的时候,打断点到feign的地方,数据是存在的,并且有15条。但是返回到上面代码的时候数据就没了。

下面的代码是上面的feign调用的具体代码,下面的代码返回了15条数据。但是返回到上面的list就没了

List<Demo> list = aaaService.getData(param);

上面的是伪代码,下面的是真实业务场景。

方法执行的结果是15条数据,返回到变量里面就没了。

在这里插入图片描述
在看看结果:
在这里插入图片描述

项目背景:

这个项目使用的是springbootfeign调用的是另外一个模块里面的接口。

使用nacosjekins部署服务,

这个feign是很早以前就已经写好了,现在需要对其功能进行一些修改。

所有就改了aaaService 所调用的mapper 里面的sql语句,

没改之前的sql查出来的是0条。

改了之后的sql查出来的数据是15条。

解决方法:

问题出现的原因:

调用的feign使用nacos里面注册的feign地址,由于我们修改的代码只是在本地修改了,并没有推到开发环境。所以它的请求是转发到服务器的IP地址去了,所以这个feign请求的数据是通过以前的旧sql 返回的数据。

为什么本地idea代码debug会出现返回的数据有15条,可能是idea的优化,将请求在本地模拟了的原因,实际的请求本没有打到本地的服务器,而是打到了nacos注册的其他服务器。虽然咱启动了服务也注册到了nacos,但是不知道为什么这个feign的请求就是不能打到本地。

解决:指定服务名称即可。

将这个名字指定为自己特殊的名字 aaa ,并且修改yml里面自己服务的名字 aaa,让这两个服务名对应起来。feign调用的请求就会打到本地的服务里面。

本地的服务是你修改了的最新代码,没有提交到服务器里面的。

@FeignClient(name = "aaa", fallback = aaaSupport.class)
spring:
  application:
    name: aaa

总结:

造成这个bug的根本原因就是因为我不知道feign调用的到底是那个服务器的代码。

这个feign请求一直请求到了远程其他服务器的旧代码,所以查不到数据。

如果我们指定了feign的请求服务名,并且把我们的服务名改为对应的服务名就可以指定feign的请求精确的请求到本地的修改测试的代码中来。

参考文章列表:

  1. 没有参考文章,自己调试出来。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dlage

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

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

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

打赏作者

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

抵扣说明:

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

余额充值