Встречается на 2% собеседований по Java

Сколько должно быть Consumer в Topic

Оптимальное количество Consumer'ов в Topic зависит от количества партиций. Рекомендуется иметь не больше Consumer'ов, чем партиций в Topic, так как одна партиция может обрабатываться только одним Consumer'ом в рамках Consumer Group.

Пример:

java
// Topic с 3 партициями
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "test-group");
// 3 Consumer'а - по одному на партицию
KafkaConsumer<String, String> consumer1 = new KafkaConsumer<>(props);
KafkaConsumer<String, String> consumer2 = new KafkaConsumer<>(props);
KafkaConsumer<String, String> consumer3 = new KafkaConsumer<>(props);

Если Consumer'ов больше чем партиций - часть Consumer'ов будет простаивать. Меньше - один Consumer будет обрабатывать несколько партиций. Для масштабирования увеличивайте количество партиций.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы