Spring Integration имеет поддержку ZooKeeper, как описано в https://docs.spring.io/spring-integration/reference/html/zookeeper.html Однако этот документ настолько расплывчатый.
Он предлагает добавить ниже bean-компонент, но не дает подробностей о том, как запустить / остановить опрос, когда узлу предоставлено лидерство.
@Bean
public LeaderInitiatorFactoryBean leaderInitiator(CuratorFramework client) {
return new LeaderInitiatorFactoryBean()
.setClient(client)
.setPath("/siTest/")
.setRole("cluster");
}
Есть ли у нас какой-либо пример того, как с помощью zookeeper убедиться, что нижеприведенный опросчик запускается только один раз в кластере в любое время?
@Component
public class EventsPoller {
public void pullEvents() {
//pull events should be run by only one node in the cluster at any time
}
}