【发布时间】:2019-05-22 10:22:03
【问题描述】:
使用 spring 集成和 zookeeper,可以实现一个领导者来执行诸如轮询之类的活动。
但是我们如何将leader职责分配给集群中的所有节点来进行负载均衡呢?
鉴于下面的代码,一旦应用程序启动,我看到同一个节点正在维护领导角色并获取事件。我想将此活动分发到集群中的每个节点以更好地平衡负载。
有什么方法可以调度集群中的每个节点以循环方式获得领导权和撤销?
@Bean
public LeaderInitiatorFactoryBean fooLeaderInitiator(CuratorFramework client) {
new LeaderInitiatorFactoryBean()
.setClient(client)
.setPath("/foofeed")
.setRole("foo");
}
@Bean
@InboundChannelAdapter(channel = "fooIncomingEvents", autoStartup = "false", poller = @Poller(fixedDelay = "5000"))
@Role("foo")
public FooTriggerMessageSource fooInboundChannelAdapter() {
new FooMessageSource("foo")
}
【问题讨论】:
标签: spring-integration apache-zookeeper spring-integration-dsl spring-cloud-zookeeper