路由配置在同一ftp上具有多个使用者端点的问题

时间:2013-11-15 08:16:05

标签: ftp apache-camel

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"/>

1 个答案:

答案 0 :(得分:1)

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

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

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

其中directoryname表示基础目录。可以包含嵌套文件夹。

如果你对FTP结构有控制权,我建议你重新组合一个普通父母的文件夹,以便对其进行轮询。

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