Порядок получения сообщений, если потребитель Kafka подписывается на несколько тем - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть потребитель, который опрашивает несколько тем. Для этого вопроса я ограничил один раздел на тему. Скажем, к тому времени, когда потребитель начал опрос, в каждой теме есть данные Каков порядок чтения?

Это круговой? Это прочитано все от первого до следующего? Я использую consumer.poll(N) для опроса.

1 Ответ

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

Упорядочение отсутствует, так как базовый протокол позволяет отправлять запросы для нескольких разделов в одном запросе.

Когда вы вызываете consumer.poll(N), клиент действительно отправляет FetchRequest объекты брокерам, которые размещают лидеров разделов (см. org.apache.kafka.clients.consumer.internals.Fetcher.createFetchRequests()) - и это только один запрос на узел, а не на раздел.

Важно то, что клиент может отправить один запрос FetchRequest для нескольких разделов (см. спецификация протокола ).

...