2017-10-18 73 views
0

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

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

我得到了建议,使用infinispan和写共享缓存,该文件正在进行中。

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

Regards, Sarada。

回答

0

是的,你需要使用聚集路由模式。你可以找到在骆驼在行动第2版本书关于这个细节,第17章:https://www.manning.com/books/camel-in-action-second-edition

由于骆驼JCIFS扩展文件组件,你可以看一下解决方案,有关于在Apache的骆驼集群文件路径,并使用类似的在线解。例如readLockIdempotent选项(本书中有一个例子)。

+0

谢谢!一旦我修好了会发布答案:-) –

0

可以尝试使用文件/ ftp中的premove选项来移动文件,一旦它被服务器发现,这将隐藏该文件从其他服务器,并且它默认获得锁定,所以其他服务器无法访问,即使两者都尝试相同的纳秒。

相关问题