当前位置: 首页 > 后端技术 > Java

一次Feign初始化导致的性能问题【案例小记】

时间:2023-04-01 17:32:40 Java

一次Feign初始化导致的性能问题【案例笔记】在帮客户看问题的时候,发现某个接口响应时间比较长,大概2s左右,拖累了整个事务的响应。应客户的要求帮我做了一些分析,记录在这里,作为备份!1.现象某界面响应时间很慢很快2秒,但是资源消耗不高,基本排除了CPU消耗高导致的界面响应慢。另外CPU消耗高,接口响应慢,应该是整个模块都慢,而不是单个接口慢,那我们就用我们的工具排查,找找哪里慢了。2.调查过程借用了一个更好的可视化工具,并借用了配套的APM探针工具,做了链接跟踪。很明显吗?使用SpringDecode.decode,在配置代码中编写配置类。每次调用Feign都会调用这里新建的HttpMessageConverters进行初始化处理(部分组件初始化还是会消耗资源)。如果发现问题,那就解决它!3.解决方法代码就不贴出来了,先截图看看好玩吧(比如其实我是找不到的)最后客户采纳了第二点,做出了判断。httpMessageConverter做静态处理。如果没有,就去new,基本只需要加载一次,减少了调用次数。4.思考有时候性能测试就是这么简单朴实。解决方法是绕过问题,或者减少调用次数,或者牺牲性能来满足业务等待。