我正在尝试创建自定义的骆驼组件。
它用于与FTP通信的旧系统(与文件进行对话以得到更好的描述)。因此,我的使用者扩展了FtpConsumer
。
它将轮询文件,效果很好。
然后我需要做的是创建另一个FTP连接-从技术上讲是同一台计算机的连接,但路径不同。 在我的实验中,我使用了带有构造URI的Consumer Template来获取另一个文件(基于轮询文件的内容)。
这在较高水平上起作用,并且可以获取我需要的文件。 有人可以确认这是否危险吗?
根据文档:
FTP使用者(具有相同的端点)不支持并发(后备FTP客户端不是线程安全的)。 您可以使用多个FTP使用者从不同的端点进行轮询。它只是一个端点,不支持并发使用者。
这会在这里产生影响吗? 是否有更好的方式建立此辅助FTP连接?尤其安全。
当然,我想要的文件确实得到了检索,我可以将其进一步传递到Camel路由,但是,在使用FTP时,当我进行字节级处理(按位计算等)时,会遇到问题流文件,我想知道这是否与它有关。
所以我想我的主要问题是,像我在单个使用者中描述的那样,调用多个FTP命令的安全骆驼方法是什么?
如果我正在做的事情行得通,那么也许我需要一个关于我对数据进行按位操作的新问题(基本上,只要进行一次FTP获取,它们始终可以正常工作-即使用者在该进程上运行该进程但是如果我轮询一个文件,然后使用该文件来获取另一个文件,则该文件处理将在低级别失败-好像存在内存/线程问题。
答案 0 :(得分:0)
要建立另一个FTP连接(同一台机器,使用不同的路径),可以在路由中使用pollEnrich。
FTP使用者(具有相同的端点)不支持并发(后备FTP客户端不是线程安全的)。您可以使用多个FTP使用者从不同的端点进行轮询。它只是一个端点,不支持并发使用者。
这部分说明您是否有多个FTP使用者点指向同一终结点(即同一台机器,同一路径)。它们可能会竞争同一文件,并导致使用重复/不完整/空文件。