Поведение и порядок опроса потребителей Kafka - PullRequest
1 голос
/ 26 мая 2020

Допустим, мой потребитель опрашивает брокера, у которого есть несколько тем, и каждый topi c имеет несколько разделов. У меня всего 5 потребителей в одной группе потребителей. Если каждый из моих потребителей проведет опрос, в каком порядке будут возвращаться данные?

Пример, мой первый потребитель назначен следующему разделу:

topicA - раздел 0

topicA - раздел 1

topicB - разделы 0

topi cC - разделы 3

topicD - разделы 5

Мой вопрос в том, что в этом одном опросе я получу все доступные сообщения из этой темы / раздела раньше переход к следующей теме / разделу по порядку? значение, например:

В одном опросе l oop я получил это по порядку ...

Behavior A

topicA - раздел 1 - получил сообщение со смещения 1000 ... 2000

topicA - раздел 0 - получено сообщение со смещения 500 ... 700

topicB - раздел 0 - получено сообщение со смещения 100 ... 150

topi cC - разделы 3 - получено сообщение со смещения 5500 ... 6000

topicD - разделы 5 - получено сообщение со смещения 0 ... 100

или в том единственном 1 опросе l oop можно получить этот порядок сообщений? Тот же самый раздел и topi c будут разделены (topicA раздел 1, topicA - раздел 0 и topi cC - разделы 3)

Behavior B

topicA - раздел 1 - получено сообщение со смещения 1000 ... 1499

topicA - раздел 0 - получено сообщение со смещения 500 ... 520

topicA - раздел 1 - получено сообщение со смещения 1500. ..2000

topicB - раздел 0 - получено сообщение со смещения 100 ... 150 - то же, что и поведение A без разделения

topi cC - разделы 3 - получено сообщение от смещение 5500 ... 5799

topicA - раздел 0 - получено сообщение со смещения 521 ... 700

topicD - разделы 5 - получено сообщение со смещения 0 .. .100 - то же, что и поведение A без разделения

topi cC - разделы 3 - получено сообщение со смещения 5800 ... 6000

Я хочу знать об этом поведение, и если это гарантирует и будет согласованным, будет поведение A или B или может быть настроено. Я искал это, но нигде не нашел в do c или заданном ранее вопросе. Я также тестировал это сам, и кажется, что это всегда поведение A, но я хочу это подтвердить. Спасибо и благодарю за любую помощь заранее.

1 Ответ

0 голосов
/ 26 мая 2020

К сожалению, при использовании нескольких разделов порядок сообщений не сохраняется. Из документации Apache https://kafka.apache.org/082/documentation/:

Kafka обеспечивает только общий порядок сообщений внутри раздела, а не между разными разделами в топи c. Для большинства приложений достаточно упорядочения по разделам в сочетании с возможностью разделения данных по ключу. Однако, если вам требуется полный порядок сообщений, это может быть достигнуто с помощью topi c, который имеет только один раздел, хотя это будет означать только один процесс-потребитель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...