网络超时问题实践

算法团队的代码在客户线上部署后,任务偶发会失败,业务日志中会出现Timeout等网络超时的关键字。
将解决网络超时问题的思路流程记录如下。

场景

经测试发现,线上算法测试时,会有异地不同节点间频繁且大数据量的交互。

  1. 并发量
    任务失败时,qps数在个位数。

  2. 数据包大小
    可能存在几十M甚至上百M的数据包。

  3. 通信链路
    A方算法->B方客户nginx->B方客户入口网关—>B方服务网关->B方算法服务,
    其中A方往B方传大文件有几率强制断开。

从上述测试中,失败时的并发量不高,但是数据包较大且网络不稳定。

处理方案:

  1. 超时重试
    http调用在出现超时等异常时进行三次重试。
  2. 数据分片
    在http调用前新增前置处理层,将超过10M的数据包进行压缩以及分片;在接收方进行合并再解压。
  3. 检查设置链路超时时间和包大小
    检查全链路上nginx、tomcat等服务的默认超时时间和传输文件大小限制,适当调大。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容