fetch.max.message.bytes и max.message.bytes Конфигурации Кафки

#apache-kafka #configuration

#apache-кафка #конфигурация

Вопрос:

Я все еще новичок в Kafka, и я не уверен, почему существует параметр потребителя и производителя для максимального размера сообщения. Наличие двух параметров только кажется, что это приводит к ошибкам, которые разработчики могут упустить из виду (т.е. Установка значения fetch.max.message.bytes ниже max.message.bytes ). Должен быть прецедент или шаблон проектирования, который мне не хватает, который побудил команду Kafka сохранить оба этих значения конфигурации.

Комментарии:

1. Какую версию kafka вы используете?

2. Кроме того, я не могу найти fetch.max.message.bytes ни в ConsumerConfig , ни max.message.bytes в ProducerConfig . Чтобы иметь возможность дать ответ, вам нужно быть более точным.

3. Хм, похоже, что документация, которую я читал, имела в виду гораздо более старую версию Kafka (следовало бы проверить документы конфигурации потребителя и производителя для проверки). Это возникло, когда я читал окончательное руководство по Kafka

Ответ №1:

Итак, fetch.max.message.bytes не существует (по крайней мере, в последних версиях Kafka, так что вы используете?), Я предполагаю, что вы имеете в виду fetch.max.bytes вместо этого. В любом случае, fetch.max.bytes и max.message.bytes находятся у брокера (а не у производителя / потребителя). Max.message.bytes определяет максимальный размер каждого пакета сообщений, который может получить потребитель (вы знаете, что сообщения группируются так, что группируются вместе). Fetch.max.bytes определяет максимальные ограничения на количество пакетов, которые потребитель может получить за один раз от брокера; это не жесткий предел, потому что, если есть больше доступных пакетов, брокер возвращает их часть до максимума, чтобы избежать зависания потребителя.