微服务调用没有返回值,无法组成对象,但是会有feign的信息

news2024/11/20 10:31:10

事件起因

还是那个项目,至少对于我来说要学习的东西其实还是挺多的。

需求

员工信息管理,员工简历,导出功能,需要去联查员工的各项信息,其中,涉及到微服务的之间的操作出现了问题,目前主要的微服务是person服务,需要向basic-config服务请求具体的帮助,然后获取到null的结果,因为接手的是成型代码,所以不敢大规模的改动,目前情况是person服务没有收到basic-config服务的返回值,但是basic-config服务收到了person服务的请求与参数。
在这里插入图片描述

分析

首先,因为这个是成型的代码,所以没有太大的问题,而且微服务之间的是相互通的,这是大前提。其次,项目年头挺长了,确实有两边相同实体但是不一致的情况,可能是因为历史问题有些内容没有成功提交,或者提交了但是不在我们目前掌握的项目之中,定下了其中的一个方向就是实体不一致的问题。

问题处理

首先,我们朝着实体的角度去考虑,确实两边实体有轻微不一致,包括有的地方是使用手写的getset有的是使用直接生成的lombok的Getter、Setter、ToString。
而且两边实体极其麻烦,是由三层架构组成。在这里插入图片描述
确实在比较上面花费了我很大的心思,就是一个实体,里面存在的包含的因素是一个list,然后这个list他也是包含了一个list,这一步我大概花费了不断地时间。
在这里插入图片描述
其实转机在这里,确实我是没有注意到,BasicConfigFeignService日志打印已经将BasicConfig服务的返回值打印出来了,还有个没有注意到的点就是,当我在postman访问的时候,person服务和basicconfig服务在person服务请求basicconfig服务的过程中同时响应了,
在这里插入图片描述
同一个请求,两边同时响应了,其实就是意味着其实,这一块被熔断了,当basicconfig服务在执行获取数据组织数据时,person已经熔断了,已经返回了null,等basicconfig执行完之后将数据传回person服务的时候其实已经结束了,所以在BasicConfigFeignService会打印出basicconfig的返回值。
相应的验证其实我也应该意识到了,其实当实体比较没有生效的时候提出了两个解决办法。
第一个还是对于实体的一个怀疑,将basicconfig服务中的实体全部迁移到person中,发现问题没有改变,最后放弃这个想法的做法将person服务接受返回值的参数从实体修改为String,发现String也是空的,就放弃这个想法。
第二个想法是有没有可能是数据量过大,因为我们观察了BasicConfigFeignService日志返回的结果,发现数据量确实不小,大概是成百上千条,然后我这边不想大规模破坏对应的代码转而使用了在basicconfig服务执行完成之前的一步,去除多余数据,然后发现没有生效,要是我当时使用直接全部新建一套实体其实早就可以发现这个问题了。
从postman调用的时候其实就已经很明显了,问题是出现在feign的熔断,原本feign 的配置是
在这里插入图片描述
修改为
在这里插入图片描述
取消熔断,并且加强超时间
然后问题处理,就是因为执行时间过长,导致的。
虽然整件事的最后以扣掉这个功能的前台按钮未结束,但是我确实学到了东西。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1046326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时空碰撞之当Leaflet遇到Echarts

前言 在之前的博客中,有介绍如何进行Leaflet展示的,也有介绍Echarts如何进行高效图表展示的。针对一些时空类的场景,比如需要跟随GIS地图一起进行图表展示,如何在地图上集成图表插件。本文将以常用的Leaflet为例,重点讲…

JAVA中使用CompletableFuture进行异步编程

JAVA中使用CompletableFuture进行异步编程 1、什么是CompletableFuture CompletableFuture 是 JDK8 提供的 Future 增强类,CompletableFuture 异步任务执行线程池,默认是把异步任 务都放在 ForkJoinPool 中执行。 在这种方式中,主线程不会…

I/O

IO 流简介 IO 即 Input/Output,输入和输出。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。IO 流在 Java 中分为输入流和输出流,而根据数据的…

DAY47 多表外键联系

一、表设计之关联关系 外键:主键是用于表示数据的唯一性字段,外键是用于建立关联关系的字段,值通常指向另一张表的主键 一对一 什么是一对一的关系:有A,B两张表,A表中一条数据对应B表中的一条数据,称之为一…

Java 设计模式——抽象工厂模式

目录 1.概念2.结构3.实现4.优缺点5.使用场景6.模式扩展7.JDK源码解析——Collection.iterator方法 1.概念 (1)Java 设计模式——工厂方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机等。这些工厂只生产同种类产品…

MATLAB m文件格式化

记录一个网上查到的目前感觉挺好用的格式化方法。 原链接: https://cloud.tencent.com/developer/article/2058259 压缩包: 链接:https://pan.baidu.com/s/1ZpQ9qGLY7sjcvxzjMPAitw?pwd6666 提取码:6666 下载压缩包&#xf…

【GDB】自定义命令

.gdbinit 文件的使用 gdb自定义命令 自定义命令格式 define <command> <code> end document <command> <help text> end示例 .gdbinit 脚本中输入如下内容 layout asm b 5define print-tyustliecho hello, world\n enddocument print-tyustliusage…

【冒烟测试前置】如何把控提测质量?

你是否碰到过开发提测速度很快&#xff0c;导致项目排队&#xff0c;结果介入测试时&#xff0c;第一条用例都跑不通的情况&#xff1f; 你是否碰到过因为开发提测质量差&#xff0c;导致反复修改&#xff0c;反复提测&#xff0c;反复重复验证的情况&#xff1f; 你是否碰到…

sql数据类型,约束以及单表查询

嘎嘎学撒 数据类型约束条件DML 数据操作语句一、插入数据INSERT二、更新数据UPDATE三、删除数据DELETE四、MySQL单表查询五、关键词 数据类型 常见的数据类型 数值类型&#xff1a; 整数类型 TINYINT SMALLINT MEDIUMINT INT BIGINT 整型可以指定是有符号的和无符号的&#xf…

如何快速做跨业务测试?

当业务任务多且人力资源不充足的情况下&#xff0c;不同业务的同学可能需要去不同的业务进行临时支援&#xff0c;可能在时间方面有长有短&#xff0c;但是如何迈出第一步是很多人需要关心的一件事。 本文以实际跨业务测试经验&#xff08;订单业务测试人员如何测试售后业务&a…

【操作】国标GB28181视频监控EasyGBS平台更新设备信息时间间隔

国标GB28181协议视频平台EasyGBS是基于GB28181协议的视频监控云服务平台&#xff0c;可支持多路设备同时接入&#xff0c;并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音对讲、平台…

[Python进阶] Pyinstaller打包程序时为程序添加图标

5.5 Pyinstaller打包程序时为程序添加图标 5.5.1 程序图标的好处 增强可识别性&#xff1a;图标是一种视觉语言&#xff0c;能够提高应用程序的可识别性&#xff0c;使其在众多应用程序中更容易被用户找到和识别。 帮助用户理解应用程序功能&#xff1a;图标可以快速传达应用…

硬件基本功--电阻/电容/电感/二极管

一、电阻 电阻的主要参数&#xff1a;阻值、精度、封装、功率、耐压 电阻在电路中的作用&#xff1a;分压、限流、采样、偏置等等 阻值&#xff1a;103 10*1000 10KΩ 电阻流过电流&#xff0c;就会有压降&#xff0c;从而产生功率损耗 电阻封装、功率、耐压的关系&#xff1…

青云1000----华为昇腾310 注意事项

青云1000帮助文档 只是一部分&#xff0c;后续遇到的问题会补充 注意事项&#xff01;&#xff01;&#xff01;&#xff01; type-c只用于数据传输不能供电DC供电和锂电池不能同时供电&#xff0c;会烧掉风扇正负级不要插反 账户密码 HwHiAiUser 密码Mind123 TypeC USB …

接口测试——接口协议抓包分析与mock_L2

目录&#xff1a; 抓包工具charles抓包工具fiddler抓包工具证书配置app抓包实战练习接口测试实战练习 1.抓包工具charles 工具介绍 支持 SSL 代理支持流量控制支持重发网络请求&#xff0c;方便后端调试支持修改网络请求参数支持网络请求的截获并动态修改可以自动将 json 或…

七、栈与队列(stack and queue)

文章目录 一、栈与队列基础二、例题&#xff08;一&#xff09;栈1.[232. 用栈实现队列](https://leetcode.cn/problems/implement-queue-using-stacks/description/)&#xff08;1&#xff09;思路&#xff08;2&#xff09;代码&#xff08;3&#xff09;复杂度分析 2.[225. …

海大校园学习《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

海大校园学习《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

pytorch固定随机数中种子

1、添加到yolov7的utils/general.py文件最下面 import pkg_resources as pkg def check_version(current0.0.0, minimum0.0.0, nameversion , pinnedFalse, hardFalse, verboseFalse):# Check version vs. required versioncurrent, minimum (pkg.parse_version(x) for x in …

【数据结构--八大排序】之归并排序

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

中国社科院与美国杜兰大学完成了我的金融硕士梦

一个人从出生就被赋予着太多的期待&#xff0c;比如爸爸妈妈从小没有完成的梦想&#xff0c;哥哥姐姐失败的课程&#xff0c;为了实现这些期待&#xff0c;人们忙着奋斗、拼搏、追逐&#xff0c;马不停蹄去做有用的事&#xff0c;结交有用的人&#xff0c;不敢虚度半寸光阴&…