【问题标题】:Out of memory heap size error - apache camel ftp内存堆大小错误 - apache camel ftp
【发布时间】:2016-06-16 18:27:31
【问题描述】:

我正在运行我的 camel ftp 以将大约 10000 个文件从远程 linux 服务器目录下载到本地计算机目录。一旦完成下载大约 2000 个文件,我就会收到一堆内存不足错误。根据其他论坛主题,建议使用 maxMessagesPerPoll。但如果我将它设置为 1000,它只会下载 1000 个文件并停止。我的代码很简单,取自camel ftp示例

from("sftp://xxxxx:22//tmp/serverfolder/?stepwise=false&include=ABC*.txt}}&username=XXXX&password=XXXXX&maximumReconnectAttempts=0&delay=5s&maxMessagesPerPoll=1000")
.to(/tmp/localfolder/);

【问题讨论】:

  • 试试delay=5000 而不是delay=5s

标签: apache-camel camel-ftp


【解决方案1】:

我相信您在与论坛上的人交谈时走在正确的轨道上。但是,看起来他们的一条消息被遗漏/丢失了。 Camel FTP 是一个“轮询端点”,这意味着它会不断地循环调用端点。这一点都不难配置,它可以让你拉几个文件,稍等片刻,然后拉更多。理想情况下,这将允许您跟上放置到目录中的文件,因此您通常不会移动 10,000 批文件。你可以每隔几秒钟移动几百个。

文档:

http://camel.apache.org/polling-consumer.html

http://camel.apache.org/ftp.html

来自 FTP 文档的重要说明:请参阅 File2,因为那里的所有选项也适用于此组件。

http://camel.apache.org/file2.html

来自 file2 文档的信息

Property    Default    Description
delay       500        Milliseconds before the next poll of the file/directory.

这只是意味着您可以每隔几秒或几分钟提取几个文件,而不是一次尝试移动所有 10k 文件。还请记住,使用此选项时,除非您只是偶尔开始一次骆驼路线,否则您通常永远不会累积 10k。

重要说明 2: FTP 消费者不支持并发

请记住这一点。您将无法仅添加一堆线程来提高性能,因此如果您想处理大量文件,保持组件持续运行很重要。理想情况下,最好是不断消耗它们,而不是每天一次批量加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-28
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多