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

Как добавить десять Consumer на каждую партицию

Для добавления нескольких Consumer на каждую партицию в Kafka используйте KafkaConsumer с разными group.id или увеличьте количество потоков в одном консьюмере.

Пример с потоками:

java
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "test-group");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

ExecutorService executor = Executors.newFixedThreadPool(10);
for (int i = 0; i < 10; i++) {
executor.submit(() -> {
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
consumer.subscribe(Collections.singletonList("topic"));
while (true) {
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
records.forEach(record -> System.out.println(Thread.currentThread().getName() + ": " + record.value()));
}
});
}

text

**Важно:**  
- Убедитесь, что `max.poll.records` и `max.partition.fetch.bytes` настроены корректно.  
- Для балансировки нагрузки лучше использовать `KafkaConsumer` в разных группах или увеличивать число партиций.  
- Не забудьте закрывать потоки и консьюмеры при завершении работы.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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