一、该问题的重现步骤是什么?
以下为接口返回实体List时间对比
a、本服务内调用
b、同一服务器跨服务调用
2.以下为接口返回Json字符串调用时长对比
a、本服务内调用
aa、同意服务器跨服务调用
3.
二、你期待的结果是什么?实际看到的又是什么?
期待传输时间控制在500ms以内
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
2.9.1;windows10
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
一、如果你不是首次时间长而是每次时间都长的话,这个问题可以从以下的几个点去筛选排查
1. 新建专门测试的接口,内部没有sql调用等业务逻辑,就看调用返回所需时间是多少,调用十次都记录下来
2. 因为feign底层是http调用,那也可以把feign调用改成HttpUtil的调用,查看用HttpUtil后,测试接口返回所需时间是多少,调用十次都记录下来
3. 调用同一个测试接口,如果第1种方法,平均调用时间都很长,而第2种方法平均时长都很低,那就有可能与feign本身有关。如果两种方法平均时长都很长,那就与feign无关,需要排查其他地方。
二、如果确认是feign的问题,那么就需要对feign的内部结构进行改造排查
1. 到bladex-tool内找到blade-core-cloud包,把和feign相关的封装列一下,然后逐个删除,再执行install,然后测试feign调用时间
2. 把一些额外配置删除,逐步到原生的feign,就可以找到是哪一块配置的问题,具体截图如下,后续找到相关问题可以继续完善帖子,或者给我们发邮件:bladejava@qq.com
三、不过我感觉应该不是feign本身的问题,因为我们部署的时候,只有首次feign调用,创建缓存的时候会时间长一点,之后调用都是很快的
扫一扫访问 Blade技术社区 移动端