Потребитель Kafka отправляет больше запросов на получение брокеру - PullRequest
0 голосов
/ 28 февраля 2020

У меня Kafka Consumer, который выбирает брокера с заданным интервалом выборки. Это выборка с заданным интервалом времени, и это нормально, когда сообщения находятся в топи c. Но я действительно не знаю причину, по которой потребитель отправляет больше запросов на выборку, когда в kafka topi c.

нет сообщений.

1 Ответ

0 голосов
/ 28 февраля 2020

Как правило, потребители отправляют брокеру два типа запросов:

  • Пульс
  • Запрос опроса

Пульс отправляется через отдельный поток и его Интервал настроен на heartbeat.interval.ms (по умолчанию 3 секунды)

Для запроса на опрос нет указанного интервала c, и это зависит от вашего кода. (для этого есть только верхняя граница (max.poll.interval.ms))

Абсолютно разумно отправлять более частые запросы на опрос, если в разделе (ах) нет данных, назначенных вашему потребителю. Предположим, что у вас есть такой код:

 void consumeLoop() {
    while (true) {
        records = consumer.poll();
        if(!records.isEmpty()) {
            processMessages(records);
        }
    }
}

Как вы видите, если из опроса не возвращаются записи, ваш потребитель немедленно отправит еще один запрос на опрос. Но если есть данные, вы должны сначала обработать эти записи перед отправкой следующего запроса на опрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...