业务场景
客户端调用服务器接口返回耗时4~5秒,耗时太慢,用户体验太差
原因定位:
客户端排查,报超时问题,socketTimeOut,
服务器排查,查看接口日志调用耗时:250ms左右
原因分析:
服务器接口在正常时间内返回了结果,当时客户端却一直接受不到,可能是数据包传输过程中过于缓慢和丢包,可以采用抓包工具分析,经分析,是由于待传输包过大,导致传输缓慢,由于网络传输的包达到了四五百k,传递包太慢。
采取方法
- 数据压缩:数据发送前,对要传输的包进行gzip压缩
- CDN:使用内容分发网络CDN,加快访问速度
结果
耗时减少了一半
举一反三
当待传输的数据包过大时,可以采取多种策略来优化传输效率和减少延迟,以下是一些常见的处理方法:
1. 数据压缩
- 在发送前对数据进行压缩,如使用GZIP或Brotli等压缩算法,减小数据体积,从而加快传输速度。
- 确保客户端能够解压缩接收到的数据。
2. 分块传输
- 将大数据分割成多个较小的数据包,分多次发送。
- 这样做不仅可以降低单次传输的延迟,还可以更好地利用带宽,并且在网络不稳定时更容易恢复。
- 对于文件传输,可以使用标准的分块传输技术,