本文介绍了集群模式下的春季入站集成的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们使用Spring入站轮询适配器来检查并处理文件。问题是进程正在以集群模式运行多个节点。我们的测试环境使用两个节点的负载平衡,要求在一个节点上启动此轮询过程。我们如何在不创建两个WAR文件的情况下实现这一点?我们不应使用XML配置。
推荐答案
为此,Spring集成提供了FileSystemPersistentAcceptOnceFileListFilter
您应该配置相同的共享外部MetadataStore
:http://docs.spring.io/spring-integration/reference/html/system-management-chapter.html#metadata-store
编辑
按照Gary的建议,您可以控制入站通道适配器的autoStartup
。
我是这样测试的:
@BeforeClass
public static void setup() {
System.setProperty("integrationAllowed", "false");
}
...
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@Bean
@InboundChannelAdapter(value = "flow1.input", autoStartup = "${integrationAllowed}", poller = @Poller(fixedRate = "100"))
public MessageSource<?> integerMessageSource() {
运行良好。
表达式${integrationAllowed}
表示属性占位符句子。
如果您不能使用一些共享的持久性资源来控制集群状态,那么它看起来就不像一个集群...
这篇关于集群模式下的春季入站集成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!