关于spring集成,如何水平缩放文件轮询?
假设为5s
设置了一个文件轮询器,以选择.tif
个文件,并且作为引导项目的spring集成代码正在一台服务器上运行。 preventDuplicate()
对文件poller
有效。
如果使用相同的代码部署另一台服务器会怎样?
万一两个服务器都轮询文件,同一文件被处理两次,如何防止?在这种情况下扩展的最佳方法是什么?
答案 0 :(得分:1)
如果要扩展应用程序,则肯定需要开始考虑如何通过一些持久性存储在它们之间共享状态。
preventDuplicate
的整个集群范围内的FileReadingMessageSource
类比是FileSystemPersistentAcceptOnceFileListFilter
,可以用一些可能的外部存在的商店进行配置。通过ConcurrentMetadataStore
实现,Spring Integration中存在一些选择:https://docs.spring.io/spring-integration/docs/current/reference/html/#metadata-store
否则,别无选择,无法阻止您解释的行为。