Встречается на 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` в разных группах или увеличивать число партиций.
- Не забудьте закрывать потоки и консьюмеры при завершении работы.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы