Конфигурация Kafka replica.fetch.max.bytes на уровне отдельных тем - PullRequest
1 голос
/ 27 июня 2019

Я бы хотел настроить кластер Kafka, чтобы разрешать только большие сообщения по определенной теме. Из документов я вижу, что если бы я хотел сделать это на уровне всего кластера, я мог бы сделать это, установив message.max.bytes, чтобы разрешить больший объем данных в брокере, и replica.fetch.max.bytes, чтобы разрешить он будет реплицирован, но, насколько я понимаю, это увеличит использование памяти для всех тем в моем кластере, а не только для той, которая, как я знаю, может получать большие сообщения. Существует также настройка уровня темы max.message.bytes, которая контролирует максимальный размер сообщений, но я не вижу настройки уровня темы, контролирующей максимальный размер данных операций репликации. Кажется странным, что один из этих тесно связанных параметров не настраивается на уровне темы; возможно, мне не хватает, где такая настройка или есть другой способ достичь этих целей?

1 Ответ

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

replica.fetch.max.bytes можно установить только на уровне брокера. Однако вы можете установить max.partition.fetch.bytes на стороне потребителя:

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

Обратите внимание, что это конфигурация для каждого раздела, что означает, что если вы установите его на большое количество, он будет занимать много памяти, если у вас также есть много разделов.

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