Согласно моему текущему пониманию Kafka, данные хранятся, и каждое «местоположение магазина» идентифицируется «смещением» (числовым значением).
Я наткнулся на этот параметр --> max.poll.records
Предположим, что значение max.poll.records
равно 5, что это значит? Означает ли это, что он будет считывать всего FIVE
«местоположения магазинов» за один раз (например, попытается ли он получить данные со смещений 101, 102, 103, 104, 105).
Может ли кто-нибудь помочь мне понять это?
Во-первых, вы правы, каждой записи присваивается смещение в разделе.
Настройки max.poll.records
(документы) позволяют определить максимальное количество записей, которые потребитель будет возвращать каждый раз, когда ваше приложение вызывает poll()
. Это максимум, он может вернуть столько или меньше.
Обратите внимание, что это напрямую не контролирует, сколько данных извлекается из кластера, поскольку эти настройки применяются на стороне клиента. Это просто для контроля количества записей, возвращаемых poll()
.
В фоновом режиме потребитель мог получить больше данных, чтобы быть готовым к возврату в следующий раз, когда приложение вызовет poll()
. Сколько данных извлекается потребителем, определяется fetch.min.bytes
, max.partition.fetch.bytes
и fetch.max.bytes
.
Эти настройки позволяют вам контролировать темп вашего приложения, так как вам нужно обрабатывать только max.poll.records
сразу, даже если доступно большое количество записей.
1 запись = 1 сообщение. Пакеты, которые могут содержать несколько записей
Спасибо еще раз. Кстати, есть ли способ проверить размер отдельных записей?
как потребительское приложение, нет. Он должен получить запись, чтобы получить ее размер
У меня есть еще один вопрос, который у меня есть для потоков кафки. Как я могу уведомить вас?
Пожалуйста, задайте другой вопрос StackOverflow
Вот он --> stackoverflow.com/questions/56379412/…
Спасибо за время и ответ. Я проверю ссылки, которые вы предоставили. У меня возникло сомнение: означает ли «одна запись» «одно сообщение» или в ней может быть несколько «сообщений»?