调用feign返回错误的数据
bug描述:
在一个请求方法中会调用到feign去获取其他的数据。
List<Demo> list = aaaFeignApi.getData(personSelectGetParam);
在调用的时候,打断点到feign的地方,数据是存在的,并且有15条。但是返回到上面代码的时候数据就没了。
下面的代码是上面的feign调用的具体代码,下面的代码返回了15条数据。但是返回到上面的list就没了
List<Demo> list = aaaService.getData(param);
上面的是伪代码,下面的是真实业务场景。
方法执行的结果是15条数据,返回到变量里面就没了。

在看看结果:

项目背景:
这个项目使用的是springboot,feign调用的是另外一个模块里面的接口。
使用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的请求精确的请求到本地的修改测试的代码中来。
参考文章列表:
- 没有参考文章,自己调试出来。
相关文章:
调用feign返回错误的数据
bug描述: 在一个请求方法中会调用到feign去获取其他的数据。 List<Demo> list aaaFeignApi.getData(personSelectGetParam);在调用的时候,打断点到feign的地方,数据是存在的,并且有15条。但是返回到上面代码的时候数据就…...
【Spring】(二)从零开始的 Spring 项目搭建与使用
文章目录 前言一、Spring 项目的创建1.1 创建 Maven 项目1.2 添加 Spring 框架支持1.3 添加启动类 二、储存 Bean 对象2.1 创建 Bean2.1 将 Bean 注册到 Spring 容器 三、获取并使用 Bean 对象3.1 获取Spring 上下文3.2 ApplicationContext 和 BeanFactory 的区别3.3 获取指定的…...
redis五种数据类型介绍
、string(字符串) 它师最基本的类型,可以理解为Memcached一模一样的类型,一个key对应一个value。 注意:一个键最大能存储 512MB。 特性:可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512…...
【JavaEE】Spring Boot - 项目的创建和使用
【JavaEE】Spring Boot 开发要点总结(1) 文章目录 【JavaEE】Spring Boot 开发要点总结(1)1. Spring Boot 的优点2. Spring Boot 项目创建2.1 下载安装插件2.2 创建项目过程2.3 加载项目2.4 启动项目2.5 删除一些没用的文件 3. Sp…...
Git reset、revert用法
reset reset是删除之前的提交记录,所有的提交点都会被清除,我们看下执行前后的git log区别 D:\workspace\android>git log commit 87c1277a57544c53c603b04110e3dde100da8f57 (HEAD -> develop_main) Author: test <test.com> Date: Wed…...
Redis-1
Redis 理论部分 redis 速度快的原因 1、纯内存操作 2、单线程操作,避免了频繁的上下文切换和资源争用问题,多线程需要占用更多的 CPU 资源 3、采用了非阻塞 I/O 多路复用机制 4、提供了非常高效的数据结构,例如双向链表、压缩页表和跳跃…...
【Linux】Linux服务器连接百度网盘:实现上传下载
【Linux】Linux服务器连接百度网盘:实现上传下载 文章目录 【Linux】Linux服务器连接百度网盘:实现上传下载1. 前言2. 具体过程2.1 pip 安装所需包2.2 认证(第一次连接需要认证)2.3 下载所需文件或者目录2.4 其他指令使用2.5 注意…...
ADC模拟看门狗
如果被ADC转换的模拟电压低于低阀值或高于高阀值,AWD模拟看门狗状态位被设置。阀值位 于ADC_HTR和ADC_LTR寄存器的最低12个有效位中。通过设置ADC_CR1寄存器的AWDIE位 以允许产生相应中断。通过以下函数可以进行配置 void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx…...
google谷歌gmail邮箱账号注册手机号无法进行验证怎么办?此电话号码无法用于进行验证 或 此电话号码验证次数太多
谷歌gmail邮箱账号注册手机号无法进行验证怎么办? 使用手机号码注册谷歌gmail邮箱账号时会遇到:此电话号码无法用于进行验证 或 此电话号码验证次数太多。造成注册google谷歌gmail邮箱账号受阻,无法正常完成注册。 谷歌Gmail邮箱账号正确的注册方法与教…...
Spring:IOC技术、Bean、DI
前言 Spring是一个开源的项目,并不是单单的一个技术,发展至今已形成一种开发生态圈。也就是说我们可以完全使用Spring技术完成整个项目的构建、设计与开发。Spring是一个基于IOC和AOP的架构多层j2ee系统的架构。 SpringFramework:Spring框架…...
目标检测与跟踪 (2)- YOLO V8配置与测试
系列文章目录 第一章 目标检测与跟踪 (1)- 机器人视觉与YOLO V8 目标检测与跟踪 (1)- 机器人视觉与YOLO V8_Techblog of HaoWANG的博客-CSDN博客3D物体实时检测、三维目标识别、6D位姿估计一直是机器人视觉领域的核心研究课题&a…...
【Leetcode】56.合并区间
一、题目 1、题目描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [ s t a r t i start_i start...
设置系统编码 Beta
在yolov5环境搭建过程中会遇到如下的编码错误警告: 这时,按住“ctrlc”中止进程,然后设置系统编码: 电脑右键属性打开: 重启之后等安装好了,记得回去把bae键取消。...
phpunit
composer地址:phpunit/phpunit - Packagist 官方文档:PHPUnit文档 – PHP测试框架 PHPUnit是一个框架,最为hyperf学习的补充学习,就不写这么细了。 估计写下安装和使用,具体学习内容看文档。 一、安装 需安装扩展:…...
html学习9(脚本)
1、<script>标签用于定义客户端脚本,比如JavaScript,既可包含脚本语句,也可通过src属性指向外部文件。 2、JavaScript最常用于图片操作、表单验证及内容动图更新。 3、<noscript>标签用于在浏览器禁用脚本或浏览器不支持脚本&a…...
SpringBoot整合Caffeine
一、Caffeine介绍 1、缓存介绍 缓存(Cache)在代码世界中无处不在。从底层的CPU多级缓存,到客户端的页面缓存,处处都存在着缓存的身影。缓存从本质上来说,是一种空间换时间的手段,通过对数据进行一定的空间安排,使得下…...
元宇宙虚拟展厅的特点是什么呢?优势有哪些?
元宇宙是一个很广阔的虚拟世界,它可以创造出更为丰富、沉浸式的体验,这种全新的体验为展览和艺术领域带来了更多的可能性,元宇宙虚拟展厅以其多样化、互动性、沉浸式展示的特点,带领大家进入一个虚拟现实的全新世界。 元宇宙虚拟展…...
Day11-Webpack前端工程化开发
Webpack 一 webpack基本概念 遇到问题 开发中希望将文件分开来编写,比如CSS代码,可以分为头部尾部内容,公共的样式。 JS代码也希望拆分为多个文件,分别引入,以后代码比较好维护。 本地图片,希望可以实现小图片不用访问后端,保存在前端代码中就可以了 运行程序时我…...
什么是函数式编程,应用场景是什么
什么是函数式编程,应用场景是什么 函数式编程和面向对象编程一样,是一种编程规范。强调执行的过程而非结果,通过一系列的嵌套的函数调用,完成一个运算过程。它主要有以下几个特点: 1.函数是"一等公民"&…...
Vue3之路由认识
回顾: 原来的vue2路由是通过this. r o u t e 和 t h i s . route和this. route和this.router来控制的。现在vue3有所变化,useRoute相当于以前的this. r o u t e ,而 u s e R o u t e r 相当于 t h i s . route,而useRouter相当于t…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
