本文介绍了集群模式下的春季入站集成的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们使用Spring入站轮询适配器来检查并处理文件。问题是进程正在以集群模式运行多个节点。我们的测试环境使用两个节点的负载平衡,要求在一个节点上启动此轮询过程。我们如何在不创建两个WAR文件的情况下实现这一点?我们不应使用XML配置。

推荐答案

为此,Spring集成提供了FileSystemPersistentAcceptOnceFileListFilter您应该配置相同的共享外部MetadataStorehttp://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}表示属性占位符句子。

如果您不能使用一些共享的持久性资源来控制集群状态,那么它看起来就不像一个集群...

这篇关于集群模式下的春季入站集成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-23 17:37