Встречается на собеседованиях • сегодня

Как увеличить производительность обработки Topic в Kafka работой с очередью двух Consumer

Для увеличения производительности обработки топиков Kafka с двумя консьюмерами можно использовать следующие подходы:

  1. Партиционирование - увеличьте количество партиций в топике (минимум 2), чтобы каждый консьюмер мог обрабатывать свою партицию параллельно:
java
// Создание топика с 2 партициями
adminClient.createTopics(Collections.singleton(
    new NewTopic("my-topic", 2, (short) 1)));
  1. Группы консьюмеров - оба консьюмера должны быть в одной группе:
java
props.put("group.id", "my-consumer-group");
  1. Оптимизация параметров:
  • Увеличьте fetch.min.bytes и fetch.max.wait.ms для более крупных батчей
  • Настройте max.poll.records для обработки большего количества сообщений за один poll
  • Используйте enable.auto.commit=false и ручной коммит после обработки
  1. Балансировка нагрузки - убедитесь, что партиции равномерно распределены между консьюмерами (можно проверить через kafka-consumer-groups CLI).

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

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

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

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

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