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