一、该问题的重现步骤是什么?
1. 启动微服务,访问微服务接口;
2. Auth、User、System微服务接口阶段性卡10秒钟才响应;
3. 有时候没有问题,但有时候又出现。
二、你期待的结果是什么?实际看到的又是什么?
期待微服务接口即时响应,实际阶段性地卡10秒钟。
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
BladeX,3.0.1, CentOS Linux release 8.4.2105
四、请提供详细的错误堆栈信息,这很重要。
没有log,微服务获取到访问后,在 Request End 这个地方卡10秒钟。
五、若有更多详细信息,请在下面提供。
请问是只有token接口才有这个问题,还是说全系列的接口都有这个问题?
如果是token接口才有,可以做一个简单的排查,把一些有可能影响的代码块暂时注释。比如feign调用的模块,可以先注释掉,然后再看看调用多次后的结果如何。
如果feign注释后速度一直很快,则说明找到了原因,然后再开启feign,把对应服务的feign实现类继续注释代码,直到找到原因。
这种情况一般是网络问题,我们正常部署的时候,token接口只有第一次cloud初始化的时候才会慢,之后都是很快的。所以需要用排除法进行查找问题所在。
找到原因了,token接口调用了user的feign,而有一个user的微服务是在内网的,访问超时。怀疑feign调用没有经过gateway,gateway的路由策略没有生效所致。有办法让feign访问经过当前gateway吗?
----------------------
后续:用了version的灰度发布,感觉有效。
Gateway会调用他注册在nacos环境内的所有可匹配到的服务,这种情况用灰度发布或者把内网注册的服务下线就可以了
扫一扫访问 Blade技术社区 移动端