自定义骆驼组件-在FTP使用者中调用FTP

时间:2019-07-02 11:12:47

标签: apache-camel

我正在尝试创建自定义的骆驼组件。

它用于与FTP通信的旧系统(与文件进行对话以得到更好的描述)。因此,我的使用者扩展了FtpConsumer。 它将轮询文件,效果很好。

然后我需要做的是创建另一个FTP连接-从技术上讲是同一台计算机的连接,但路径不同。 在我的实验中,我使用了带有构造URI的Consumer Template来获取另一个文件(基于轮询文件的内容)。

这在较高水平上起作用,并且可以获取我需要的文件。 有人可以确认这是否危险吗?

根据文档:

  

FTP使用者(具有相同的端点)不支持并发(后备FTP客户端不是线程安全的)。   您可以使用多个FTP使用者从不同的端点进行轮询。它只是一个端点,不支持并发使用者。

这会在这里产生影响吗? 是否有更好的方式建立此辅助FTP连接?尤其安全。

当然,我想要的文件确实得到了检索,我可以将其进一步传递到Camel路由,但是,在使用FTP时,当我进行字节级处理(按位计算等)时,会遇到问题流文件,我想知道这是否与它有关。

所以我想我的主要问题是,像我在单个使用者中描述的那样,调用多个FTP命令的安全骆驼方法是什么?

如果我正在做的事情行得通,那么也许我需要一个关于我对数据进行按位操作的新问题(基本上,只要进行一次FTP获取,它们始终可以正常工作-即使用者在该进程上运行该进程但是如果我轮询一个文件,然后使用该文件来获取另一个文件,则该文件处理将在低级别失败-好像存在内存/线程问题。

1 个答案:

答案 0 :(得分:0)

要建立另一个FTP连接(同一台机器,使用不同的路径),可以在路由中使用pollEnrich


  

FTP使用者(具有相同的端点)不支持并发(后备FTP客户端不是线程安全的)。您可以使用多个FTP使用者从不同的端点进行轮询。它只是一个端点,不支持并发使用者。

这部分说明您是否有多个FTP使用者点指向同一终结点(即同一台机器,同一路径)。它们可能会竞争同一文件,并导致使用重复/不完整/空文件。