3

这是我试图实现的场景:

远程到 FTP 服务器 将大文件(大小为 3gig+)复制到本地文件夹 将本地文件流式传输到 Camel 处理器,一次批处理 100 行文件。将 Batched 行集写入 Kafka 主题。

现在我已经弄清楚了第一部分。我能够将文件读入本地目录。问题是,我如何启动第二条路由(将本地文件流式传输到 Kafka)?有没有办法将所有这些任务链接在同一条路线中,或者我应该有多条路线:

1 代表 FTP -> 本地文件,然后 1 代表本地文件 -> KAFKA

如果我需要两条路线,那么在第一条路线完成后开始第二条路线的最佳方式是什么。

感谢您的任何帮助。此外,这里是已经工作的 FTP 部分。

public void configure() throws Exception {
    from(fullyBuiltFtpPath)
            .routeId("FTP ENDPOINT CONSUMER" + UUID.randomUUID().toString())
            .process(new FtpToLocalFileProcessor())
            .to("file:c:\\temp")
            .log(LoggingLevel.INFO, "FILENAME: ${header.CamelFileName}").end();
}
4

2 回答 2

0

在 Linux 环境下,在一个文件夹中生成文件并同时使用它并没有错,但这取决于环境。但是,camel 提供了一个有用的机制,即可以在消费者和生产者中指定的“doneFileName”。更多细节在这里:http ://camel.apache.org/file2.html

您可以在“使用其他人直接删除文件的文件夹中的文件”部分找到更多详细信息。

于 2016-04-15T13:10:45.143 回答
0

我最终将路线分成两条不同的路线:

1.) 从 FTP 服务器检索文件并将其存储在本地临时目录中 2.) 启动文件路由以侦听本地临时目录并使用文件。

这并不理想,但它现在有效。谢谢您的帮助。

于 2016-04-28T07:24:44.297 回答