Kafka java Потребитель получает только несколько сообщений в вызове для опроса, а иногда и ни одного. Может ли кто-нибудь помочь увеличить количество опросов - PullRequest
0 голосов
/ 08 мая 2020

Моя конфигурация:

props.put("sasl.mechanism", "PLAIN");
props.put("enable.auto.commit", "false");
props.put("auto.commit.interval.ms", "1000");
props.put("auto.offset.reset", "latest");
props.put("request.timeout.ms", 16000);
props.put("max.partition.fetch.bytes", "4194304");
props.put("max.poll.records","3000");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

ConsumerRecords consumerRecords = consumer.poll (100);

1 Ответ

0 голосов
/ 09 мая 2020

Вы можете увеличить конфигурацию потребителя fetch.min.bytes, которая по умолчанию равна 1, чтобы обеспечить одновременную выборку большего количества данных. Однако, если новые данные попросту не поступают в topi c после 16secs (как установлено в вашей request.timeout.ms конфигурации), вы все равно будете видеть опросы, в которых не будет получено ни одного сообщения.

Вот полный описание конфигурации fetch.min.bytes из документации Kafka на пользовательских конфигурациях :

fetch.min.bytes : минимальный объем данных, который должен сервер вернуться для запроса на выборку. Если данных недостаточно, запрос будет ждать, пока накопится такой объем данных, прежде чем ответить на запрос. Значение по умолчанию, равное 1 байту, означает, что на запросы выборки ответят, как только станет доступен единственный байт данных или истечет время ожидания запроса на получение данных. Установка значения больше 1 приведет к тому, что сервер будет ждать накопления большего количества данных, что может немного улучшить пропускную способность сервера за счет некоторой дополнительной задержки.

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