使用有限的连接数和Camel SFTP传输文件

时间:2018-11-13 02:17:43

标签: java performance apache-camel sftp jbossfuse

我们有一个要求,我们需要下载超过10万个文件并将其上传到其他FTP服务器(EFT),最多允许10个连接才能连接到目标服务器。由于要下载的文件数量很多,我们使用3个线程并行运行,但是由于目标最多允许10个连接,因此观察到很多失败。我观察到骆驼SFTP可以选择断开连接,所以可以选择超时。只是想知道正确的方法是什么?从性能角度来看,可以断开每个文件的连接并再次创建新的连接吗?是否建议使用单线程而不是并发处理。任何帮助表示赞赏。

//Sample route
from("sftp://username@source/data?password=password")
.log()
.to("sftp://username@source/data?password=password&disconnect=true&soTimeout=120000") 

1 个答案:

答案 0 :(得分:0)

了解您的问题,我可能会建议一种方法。与其在同一路径中进行下载和上传,不如在两条不同的路径中将它们分开。 说,

  1. 使用第一种方法从FTP下载文件并将其放在您的 本地文件夹在某处。
  2. 使用第二条路线读取本地 文件夹路径并将文件复制到FTP,然后从中删除这些文件 本地。

希望这会有所帮助。