Spring Integration:防止多节点环境中的重复

时间:2017-03-23 07:16:28

标签: spring-integration poller

我有一个由入站适配器轮询的文件。 环境方面,我有多个节点轮询位于NAS位置的单个文件(对所有人都可见)并防止重复是真的。

令人惊讶的是,如果我重复放入一个文件,在重新启动服务器之前,没有任何节点会选择该文件。

假设spring集成用于将此信息保存在spring上下文中,如果错过了其他节点,则应该已经选择了这个。

有人可以解释这个标志或元数据的维护位置吗?

1 个答案:

答案 0 :(得分:1)

the documentation。您需要FileSystemPersistentAcceptOnceFileListFilter共享MetadataStore

默认情况下,使用基于内存的AcceptOnceFileListFilter,但不考虑文件修改时间。

  

AcceptOnceFileListFilter将其状态存储在内存中。如果您希望状态在系统重新启动后继续存在,请考虑使用FileSystemPersistentAcceptOnceFileListFilter。此过滤器将接受的文件名存储在MetadataStore实现中(第9.5节“元数据存储”)。此过滤器匹配文件名和修改时间。