как указать записи опроса кафки в конкретном размере? - PullRequest
0 голосов
/ 06 июля 2018

Есть метод poll для опроса ConsumerRecords, но он не может указать размер записи, как опросить записи в определенном размере?

 public ConsumerRecords<K, V> poll(long timeout) {}

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Кафка на самом деле не поддерживает это. Вы также можете попробовать свойство fetch.max.bytes.

0 голосов
/ 06 июля 2018

Единственная соответствующая конфигурация на стороне потребителя, которую я нашел, это свойство fetch.max.bytes. Документ говорит об этом свойстве следующее:

Максимальный объем данных, которые сервер должен вернуть для выборки. запрос. Записи извлекаются партиями потребителем, и если первая партия записей в первом непустом разделе выборки больше этого значения, пакет записи все равно будет возвращен убедитесь, что потребитель может добиться прогресса. Таким образом, это не абсолютный максимум. Максимальный размер записи, принятый брокером определяется через message.max.bytes (конфигурация брокера) или max.message.bytes (конфиг темы). Обратите внимание, что потребитель выполняет несколько выборок в параллельны друг другу.

Вы также можете установить ограничение на выборку раздела, используя свойство max.partition.fetch.bytes, но я думаю, что это не то, что вам нужно.

В качестве альтернативы, если у вас есть оценка среднего размера каждой записи, вы можете попробовать поиграть с параметром max.poll.records.

...