Чтение кафка-топика двумя репликами
Какие настройки нужно применить для 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);