Apache Camel 将路由链接在一起
Apache Camel Chaining Routes together
这是我要实现的场景:
远程到 FTP 服务器
将大文件(3gig+ 大小)复制到本地文件夹
将本地文件流式传输到 Camel 处理器中,一次批处理 100 行文件。
将批处理的行集写入 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();
}
在Linux环境下,在文件夹中生成文件并同时使用它并没有错,但这取决于环境。但是,camel 提供了一个有用的机制,即可以在消费者和生产者中指定的 "doneFileName"。
此处有更多详细信息:http://camel.apache.org/file2.html
您可以在 "Consuming files from folders where others drop files directly" 部分找到更多详细信息。
我最终将路线分成两条不同的路线:
1.) 从 FTP 服务器检索文件并将其存储在本地临时目录中
2.) 启动文件路由来监听本地临时目录并使用文件。
这并不理想,但目前有效。感谢您的帮助。
这是我要实现的场景:
远程到 FTP 服务器 将大文件(3gig+ 大小)复制到本地文件夹 将本地文件流式传输到 Camel 处理器中,一次批处理 100 行文件。 将批处理的行集写入 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();
}
在Linux环境下,在文件夹中生成文件并同时使用它并没有错,但这取决于环境。但是,camel 提供了一个有用的机制,即可以在消费者和生产者中指定的 "doneFileName"。 此处有更多详细信息:http://camel.apache.org/file2.html
您可以在 "Consuming files from folders where others drop files directly" 部分找到更多详细信息。
我最终将路线分成两条不同的路线:
1.) 从 FTP 服务器检索文件并将其存储在本地临时目录中 2.) 启动文件路由来监听本地临时目录并使用文件。
这并不理想,但目前有效。感谢您的帮助。