#apache-kafka
#apache-kafka
Вопрос:
У нас есть вариант использования, когда мы хотим редко передавать данные в kafka с максимальным размером 2 МБ (то есть размер сообщения будет меняться в зависимости от операций пользователя).
Повлияет ли создание размера в 2 Мб на что-либо, или нам нужно разбить сообщение на небольшой фрагмент, такой как 100 КБ, и создать.
Если мы создадим небольшой фрагмент, это увеличит время отклика пользователя. Кроме того, мы проверили, отправив сообщение размером 2 МБ в kafka, и мы не видим там большой задержки.
В любом случае, если мы разделим данные и создадим, это никак не повлияет на размер диска. Но снизится ли производительность брокера из-за этого?
Наша конфигурация брокера:
Оперативная память 125,6 ГБ, Размер диска 2,9 ТБ, Процессоры 40
Комментарии:
1. с этим брокером я бы не беспокоился о размерах сообщений в 2 МБ..
Ответ №1:
Я не вижу никаких проблем с наличием сообщений размером до 2 МБ. Вам просто нужно настроить соответствующие параметры;
-
Установите
message.max.bytes
иreplica.fetch.max.bytes
на стороне брокера (обратите внимание, чтоmessage.max.bytes
<replica.fetch.max.bytes
). -
И
max.partition.fetch.bytes
на стороне потребителя
как минимум на 2 МБ
Ответ №2:
Я бы предложил рассмотреть более эффективные, даже двоичные форматы данных (ref Avro, Protobuf, MsgPack и т.д.) Для создания данных, А затем дополнительно добавить сжатие (Zstd, GZIP, Snappy и т.д.) В коде производителя, Прежде чем пытаться настроить какие-либо свойства, связанные с брокером