Чтение кафка-топика двумя репликами

Какие настройки нужно применить для Consumer-а в java приложении, когда два экземпляра приложения (то есть два листенера) читают одновременно один топик с одной партицией? Необходимо задать, чтобы одно сообщение читалось/обрабатывалось только одним из двух экземпляров


Ответы (1 шт):

Автор решения: Roman-Stop RU aggression in UA

Для того, чтоб несколько потребителей читали сообщения скоординировано и каждое сообщение попадало только одному потребителю нужно им назначить одинаковую группу.

Вот соответствующая часть примера из документации:

import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.KafkaConsumer;


final Properties props = ...

...
props.put(ConsumerConfig.GROUP_ID_CONFIG, "demo-consumer-1");

final Consumer<String, DataRecord> consumer = new KafkaConsumer<String, DataRecord>(props);
→ Ссылка