Несколько KafkaConsumer на нескольких кластеров Kafka в весенней загрузке
Хочу создать homogeneous kafka consumers
на разных кластерах из загрузочного приложения Spring с помощью spring-kafka
,
т.е. хотите создать объект Kafka Consumer для определенного класса, который прослушивает несколько кластеров, определенных динамически.
Например: допустим, загрузочное приложение Spring S, которое содержит
template for kafkaconsumer
, И есть три кластера Kafka custer1, cluster2, cluster3. Приложение S действует как агрегатор данных, полученных от каждого кластера. Здесь решение будет триconsumers
одного и того же шаблона будет прослушивать отдельные кластеры вparallel
,
Возможен ли приведенный выше сценарий с использованием Spring-Kafka?
1 ответ
@KafkaListener
не может общаться с несколькими кластерами. Вам нужно будет делегировать реальный слушатель...
@KafkaListener(..., containerFactory="cluster1Factory")
public void listen1(...) {
this.delegate.listen(...);
}
@KafkaListener(..., containerFactory="cluster2Factory")
public void listen2(...) {
this.delegate.listen(...);
}
etc.