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"/>
答案 0 :(得分:1)
您可以使用多个(每个路由1个),同时仍然是线程安全的,因为每个都使用自己的FTP连接(可能具有不同的凭据)。
关于第二个问题,ftp:localhost/input01,/input4?...
不是可接受的URI。
请参阅文档,只能提供一个目录名,但它可以有嵌套文件夹。
ftp://[username@]hostname[:port]/directoryname[?options]
其中directoryname表示基础目录。可以包含嵌套文件夹。
如果你对FTP结构有控制权,我建议你重新组合一个普通父母的文件夹,以便对其进行轮询。
否则你可以使用4个消费者,每个文件夹一个(01到4),将文件从01-02路由到给定路由,3-4路由到另一个路由。