Поддержка конфигурации больших сообщений Kafka для потребителя производителя загрузочных приложений Spring - PullRequest
0 голосов
/ 28 ноября 2018

Когда я пытаюсь опубликовать через производителя Kafka в загрузочном приложении Spring, я получаю ошибку RecordTooLargeException.

Ошибка:

org.apache.kafka.common.errors.RecordTooLargeException: сообщение составляет 1235934 байта при сериализации, что превышает максимальный размер запроса, настроенный вами в конфигурации max.request.size.

Я читал другие обсуждения этой проблемы, ноне получил никакой подходящей поддержки для этого, так как я должен также публиковать и принимать это сообщение со стороны клиента.

Пожалуйста, помогите мне, сделав краткие шаги по настройке, чтобы сделать это.

1 Ответ

0 голосов
/ 28 ноября 2018

Хорошая особенность Кафки в том, что она имеет отличные сообщения об исключениях, которые в значительной степени говорят сами за себя.В основном это говорит о том, что ваше сообщение слишком велико (я полагаю, что вы сами пришли к выводу).

Если вы проверите документы для конфигурации производителя , найдите max.request.size вТаблица для объяснения, он говорит:

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

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

properties.put(ProducerConfig.MAX_REQUEST_SIZE_CONFIG, "value-in-bytes");

Однако значение по умолчанию в значительной степени подходит для 90% случаев использования .Если вы можете избежать отправки таких больших сообщений или, возможно, попытайтесь сжать сообщения (это будет чудесно, если говорить о пропускной способности), например так:

properties.setProperty(ProducerConfig.COMPRESSION_TYPE_CONFIG, "snappy");

Существует 2 других типа сжатияно этот от Google и довольно эффективен.Наряду со сжатием, вы можете настроить 2 других значения, чтобы получить гораздо лучшую производительность (batch.size и linger.ms), но вам придется проверить для вашего варианта использования.

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