JAVA项目文件上传速度过慢原理分析与解决
2020-12-02 04:00:01
背景
我们在项目正式上线的时候,有时候会遇到上传文件速度过慢的问题。今天我在这里通过我们项目中遇到的问题来说明文件上传速度慢的原理和问题解决方案。
原理分析
我们项目的架构采用了SpringCloud微服务架构,客户端对所有服务的接口访问都需要经过Nginx反向代理服务器和Zuul微服务网关组件,这样每次上传文件时,文件都会经过多次的网络传输,造成不必要的网络负担。特别是在用户高并发访问的时候,甚至造成了Zuul网关的不可用。所以一般来说,如果文件上传速度过慢,在排除了网络原因的情况下,大家可以检查一下,你们的系统架构接入层是否有多层负载均衡的代理。
解决方案
在我们的项目中,我们通过在NGINX接入层对文件上传和下载URL通过Rewrite指令进行重写,直接重定向到上游的真实服务器,绕过Zuul网关,减少一次不必要的请求传输,如果大家的项目中有多个接入层,我们可以找到最上层的负载均衡器,直接重定向上传和下载的URL,避免不必要的网络传输。
往期推荐
java学习路线概要
谈谈我在项目中是如何解决分布式事务的
如何对一个JAVA项目进行多个层面的优化来应对高并发
如何使用JAVA技术爬取网络小说数据到我们的数据库中
手把手教你搭建一个功能完善的SpringCloud微服务架构项目四
阅读剩余内容