Лучшее понимание Min Fetch Bytes в Кафке? - PullRequest
0 голосов
/ 20 марта 2020

Глядя на какой-то конфиг, я настраиваю Kafka для пакетной записи записей в файл.

Я вижу min fetch bytes, которое представляет собой минимальное количество байтов, возвращаемых из одного опроса по N разделам топи c. Вот сценарий, который меня беспокоит:

Я установил минимальную выборку на 100mb данных записи. Допустим, у меня есть данные 250mb. Я делаю два опроса и продолжаю 200mb. Теперь .. У меня 50mb сидит в очереди, но я все еще хочу, чтобы он обрабатывался, но не планирую иметь больше данных для ввода. Если истечет время ожидания, он просто захватит оставшиеся 50 МБ?

1 Ответ

1 голос
/ 20 марта 2020

Извините, я должен был взглянуть на документы более внимательно. Видение этого используется вместе с таймаутом.

fetch.max.wait.ms

Установив fetch.min.bytes, вы говорите Кафке ждать, пока у него не будет достаточно данных. отправить, прежде чем ответить потребителю. fetch.max.wait.ms позволяет вам контролировать, как долго ждать. По умолчанию Кафка будет ждать до 500 мс. Это приводит к дополнительной задержке до 500 мс в случае, если недостаточно данных, передаваемых в топику Кафки c, чтобы удовлетворить минимальный объем возвращаемых данных. Если вы хотите ограничить потенциальную задержку (обычно из-за SLA, контролирующей максимальную задержку приложения), вы можете установить для fetch.max.wait.ms более низкое значение. Если вы установите fetch.max.wait.ms на 100 мс, а fetch.min.bytes на 1 МБ, Kafka получит запрос на выборку от потребителя и ответит данными, когда у него будет 1 МБ данных для возврата, или после 100 мс, в зависимости от того, что произойдет раньше.

tl; dr, если превышено время ожидания до заполнения очереди, он просто вернет оставшиеся 50 МБ

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