0

我正在使用 camel-jcifs 并读取文件。每件事都很好。该应用程序将部署在四个服务器实例上。现在我的问题是如何确保一次只有一台服务器拾取文件?

 <from id="_from_pop3" uri="smb://myurl?fileName=filename&amp;preMove=inprogress&amp;move=processed"/>

我得到了使用 infinispan 并写入正在进行的文件的共享缓存的建议。

有人可以建议其他可能的解决方案吗?

问候,萨拉达。

4

2 回答 2

0

是的,您需要使用集群路由模式。您可以在 Camel in Action 第 2 版书籍第 17 章中找到有关此内容的详细信息:https ://www.manning.com/books/camel-in-action-second-edition

由于 camel-jcifs 扩展了文件组件,您可以查看有关 Apache Camel 中集群文件路由的在线解决方案并使用类似的解决方案。例如readLockIdempotent选项(书中有一个例子)。

于 2017-10-19T07:27:44.087 回答
0

可以尝试在文件/ftp 中使用 premove 选项在服务器找到文件后移动文件,这将对其他服务器隐藏文件,并且默认情况下它会获得锁定,因此即使两者都尝试相同的纳秒,其他服务器也无法访问。

于 2017-10-25T04:34:00.617 回答