Troubleshooting系列-一次基于okhttp外部接口调用超时问题分析
💡
原文中文,约4400字,阅读约需11分钟。
📝
内容提要
最近在将一部分事务从服务A移到服务B时,发现服务B的http接口超时比例比服务A高很多。经过代码分析和网络布置差异性的排查,发现问题是由于服务B的http超时时间设置较短导致的。通过修改连接池参数和调整http调用方式,问题得到解决。
🎯
关键要点
- 服务B的HTTP接口超时比例高于服务A,分别为10%和0.5%。
- 问题源于服务B的HTTP超时时间设置较短,导致超时现象频繁发生。
- 通过分析源码发现,使用Future控制超时时间的方式不当,导致超时设置不一致。
- 网络布置差异性未发现问题,服务A和服务B的网络环境相同。
- 服务A的调用量大,可能导致HTTP连接复用不充分,增加了超时风险。
- 修改ConnectionPool参数后,第二次请求时间显著下降,表明连接复用有效。
- 解决措施包括调整ConnectionPool参数、直接HTTP调用和适当增加超时时间。
➡️