Хорошая особенность Кафки в том, что она имеет отличные сообщения об исключениях, которые в значительной степени говорят сами за себя.В основном это говорит о том, что ваше сообщение слишком велико (я полагаю, что вы сами пришли к выводу).
Если вы проверите документы для конфигурации производителя , найдите 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
), но вам придется проверить для вашего варианта использования.