南宁手机企业网站定制,工作室图片,做采购常用的几个网站,两学一做网上答题网站bug描述#xff1a;
在一个请求方法中会调用到feign去获取其他的数据。
ListDemo list aaaFeignApi.getData(personSelectGetParam);在调用的时候#xff0c;打断点到feign的地方#xff0c;数据是存在的#xff0c;并且有15条。但是返回到上面代码的时候数据就…bug描述
在一个请求方法中会调用到feign去获取其他的数据。
ListDemo list aaaFeignApi.getData(personSelectGetParam);在调用的时候打断点到feign的地方数据是存在的并且有15条。但是返回到上面代码的时候数据就没了。
下面的代码是上面的feign调用的具体代码下面的代码返回了15条数据。但是返回到上面的list就没了
ListDemo list aaaService.getData(param);上面的是伪代码下面的是真实业务场景。
方法执行的结果是15条数据返回到变量里面就没了。 在看看结果
项目背景
这个项目使用的是springbootfeign调用的是另外一个模块里面的接口。
使用nacos、jekins部署服务
这个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的请求精确的请求到本地的修改测试的代码中来。
参考文章列表
没有参考文章自己调试出来。