Как данные выбираются: max.poll.records и смещения - PullRequest
0 голосов
/ 29 мая 2019

Согласно моему текущему пониманию Кафки, данные хранятся, и каждое «местоположение магазина» идентифицируется как «смещение» (числовое значение).

Я наткнулся на этот параметр -> max.poll.records

Предположим, значение max.poll.records равно 5, что это значит? Означает ли это, что он будет считывать всего FIVE «мест хранения» за один раз (например, будет ли он пытаться извлечь данные из смещений 101, 102, 103, 104, 105).

Может кто-нибудь помочь мне понять это?

1 Ответ

1 голос
/ 29 мая 2019

Во-первых, вы правы, каждой записи присваивается смещение в разделе.

Настройки max.poll.records ( документы ) позволяют определить максимальное количество записей, которое потребитель будет возвращать каждый раз, когда ваше приложение вызывает poll(). Это максимум, он может вернуть это или меньше.

Обратите внимание, что это не напрямую контролирует объем данных, получаемых из кластера, поскольку эти параметры применяются на стороне клиента. Это просто для контроля количества возвращаемых записей на poll().

В фоновом режиме потребитель мог получить больше данных, чтобы быть готовым к возврату в следующий раз, когда приложение вызовет poll(). Сколько данных получает потребитель, определяется fetch.min.bytes, max.partition.fetch.bytes и fetch.max.bytes.

Эти настройки позволяют вам контролировать темп вашего приложения, поскольку вам нужно будет обрабатывать max.poll.records сразу, даже если доступно большое количество записей.

...