2

Camel 文档说“FTP 消费者(具有相同的端点)不支持并发(支持的 FTP 客户端不是线程安全的)。您可以使用多个 FTP 消费者从不同的端点轮询。它只是一个不支持的端点支持并发消费者。”

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

问题在于在同一 ftp 服务器上具有多个使用者端点的路由配置,具有相同的帐户,但路径不同:

伪代码:

<from uri="ftp:localhost/input01?username=test&password=test"/>
<from uri="ftp:localhost/input02?username=test&password=test"/>

鉴于上述限制 - 这算作两个端点还是一个端点?换句话说,我们可以期望两个消费者是线程安全的吗?

这也可以在同一个消费者中消耗两条路径,如下所示?

<from uri="ftp:localhost/input01,/input4?username=test&password=test"/>
<from uri="ftp:localhost/input02,/input3?username=test&password=test"/>
4

1 回答 1

1

您可以使用多个(每条路由 1 个)同时仍然是线程安全的,因为每个都使用自己的 FTP 连接(可能使用不同的凭据)。

关于你的第二个问题,ftp:localhost/input01,/input4?...不是一个可接受的 URI。请看文档,只能提供一个目录名,但可以有嵌套文件夹。

ftp://[username@]hostname[:port]/directoryname[?options]

其中 directoryname 代表底层目录。可以包含嵌套文件夹。

如果您可以控制 FTP 结构,我建议您将文件夹重新组合到一个共同的父级下,以便对其进行轮询。

否则,您可以使用 4 个消费者,每个文件夹(01 到 4)一个,并将文件从 01-02 路由到给定路由,将 3-4 路由到另一个路由。

于 2013-11-15T09:11:42.443 回答