Apache camel ApacheCamel FTP—FTP的使用随着文件数量的增加而减慢,而文件的总大小保持不变

Apache camel ApacheCamel FTP—FTP的使用随着文件数量的增加而减慢,而文件的总大小保持不变,apache-camel,apache-commons-net,camel-ftp,Apache Camel,Apache Commons Net,Camel Ftp,我不熟悉骆驼。我试图从安全ftp服务器到本地文件夹进行消费,但消费速度非常慢 请建议可能有助于调整性能的参数 我的路线如下—— ftps://ftpuser@192.168.164.130:21/files/100kbFiles?connectTimeout=60000&ftpClient.keyStore.file=.%2Fsrc%2Ftest%2Fresources%2Fwip.jks&ftpClient.keyStore.keyPassword=xxxxxx&ftp

我不熟悉骆驼。我试图从安全ftp服务器到本地文件夹进行消费,但消费速度非常慢

请建议可能有助于调整性能的参数

我的路线如下——

ftps://ftpuser@192.168.164.130:21/files/100kbFiles?connectTimeout=60000&ftpClient.keyStore.file=.%2Fsrc%2Ftest%2Fresources%2Fwip.jks&ftpClient.keyStore.keyPassword=xxxxxx&ftpClient.keyStore.password=xxxxxx&localWorkDirectory=%2Ftmp&maximumReconnectAttempts=3&move=.done&passiveMode=true&password=xxxxxx&securityProtocol=SSL&soTimeout=60000]
到端点-
file://target/toFolder

消耗200个大小为200KB的文件几乎需要16分钟

我还尝试使用流缓存——

context.getStreamCachingStrategy().setSpoolDirectory("/tmp/cachedir");
                           context.getStreamCachingStrategy().setSpoolThreshold(1024 * 102);
                           context.getStreamCachingStrategy().setBufferSize(1024 * 1024 );
从端点->

ftps://ftpuser@192.168.164.130:21/files/100kbFiles?connectTimeout=60000&delay=3000&eagerMaxMessagesPerPoll=true&ftpClient.keyStore.file=.%2Fsrc%2Ftest%2Fresources%2Fwip.jks&ftpClient.keyStore.keyPassword=xxxxxx&ftpClient.keyStore.password=xxxxxx&maxMessagesPerPoll=200&maximumReconnectAttempts=3&move=.done&passiveMode=true&password=xxxxxx&securityProtocol=SSL&soTimeout=60000]
到端点->
file://target/toFolder
消耗200个大小为100kB的文件也需要大约15分钟

当我使用相同的路径消耗20个文件(每个文件大小为1MB)时,只需要1分30秒

我无法理解为什么当批量增加时,camel的速度会减慢

请建议,我缺少哪些参数可以提高FTPS的性能

我使用的是camel 2.15.2,Commons net API 3.3


谢谢,

想到的一个问题是,在camel ftp组件站点上,它说

FTP使用者不支持FTP使用者(与 相同终结点)不支持并发(支持FTP客户端为 非线程安全)。您可以使用多个FTP使用者从中进行轮询 不同的端点。只有一个端点不存在 支持并发消费者

FTP生产者没有这个问题,它支持并发

要检查,为什么不使用100KB大小的文件,但首先尝试使用1个文件,然后是10个,然后是25个,然后是50个,然后是100个,125个,150个和200个,看看在什么时候开始花费太长的时间

在那之后,我将研究使用批处理消费者,看看它是否可以帮助加快速度,同时查询多个文件。您可以在此处找到信息: 连同camel ftp和

感谢您对这个问题的回复。。。。在上面的代码中,我将批处理消费者与流缓存结合使用,请参见“maxmessageperpoll=200”。我分析了一组小文件,它在50秒内消耗了10个文件,并且始终保持每个文件5秒的速度。