JAVA使用FTPClient下载文件速度慢

——————————

目前的需求是去一台FTP服务器上边拉取文件,若是直接通过命令跳过去该FTP服务器mget *文件,速度可以达到500MB/S左右的速度,但是使用java程序去拉取,速度只有500kb。是不是什么配置影响了程序下载文件的速度?
——————————
图片说明
————————

下图是使用java程序去下载两个25MB左右大小的文件,耗时都是在35秒左右,用过公司其他框架在这台机器上做ftp文件拉取,速度也是很快,核心下载代码都是使用

ftpHelper.getFtpClient().retrieveFile(currentFile, fos)但是不明白为啥速度相差那么大


图片说明

增加 接受buffer的大小

FTPClient  client=ftpHelper.getFtpClient();
client.setBufferSize(1024*1024); // 增加 接受buffer的大小
client.retrieveFile(currentFile, fos);

org.apache.commons.net.ftp.FTPClient
这个设置下缓冲区
ftp = new FTPClient();
ftp.setBufferSize(100000);

你可以看看我写的这个插件:https://gitee.com/qq1319426493/AutoUpdate

在不同下载速度的机器可以抓包看一下 比较一下

  1. 你要确定使用命令和使用代码是否为同一网络(带宽问题)
  2. 代码质量(是否考虑文件流传输,是否考虑设置缓冲区)
  3. FTP文件传输协议与java代码的socket比较,性能如何