Могут ли потребители Kafka потреблять со всех перегородок? - PullRequest
0 голосов
/ 17 января 2020

У меня есть топик с несколькими разделами c, который потребляется несколькими потребителями (одной и той же группой). Моя цель - максимизировать объем потребляемой обработки, то есть любой потребитель может потреблять сообщения из любых разделов.

Я знаю, что это выглядит невозможным, поскольку только один потребитель может потреблять из раздела.

Можно ли использовать REST Proxy для достижения этой цели? Например, опрос всех экземпляров потребителей Proxy.

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 января 2020

Потребители Kafka по по умолчанию настроены на использование как можно большего количества разделов. Если у вас есть несколько одновременных потребителей в одной и той же топике c, используя один и тот же идентификатор группы потребителей, Kafka автоматически распределяет объем по всем этим потребителям. Это сделано специально, поэтому вы можете быстро масштабировать потребление, добавляя больше потребителей.

Вы можете, при желании, указать потребителю kafka только потребителя из указанных c разделов, включая даже один, но вы ' Я должен сделать это явно.

0 голосов
/ 17 января 2020

Лучший способ максимизировать объем потребляемой обработки - это чтение одного потребителя (той же группы) из каждого раздела.

В качестве действий по улучшению вы также можете просмотреть:

  • Число разделов: вы можете увеличить их, чтобы иметь возможность добавлять больше потребителей и увеличивать пропускную способность
  • . Как сообщения сбалансированы по разделам, неправильный выбор ключа может привести к тому, что сообщения будут приходить в один и тот же раздел

Также в качестве напоминания разрешается только один потребитель по разделам и группам потребителей, чтобы избежать проблем параллелизма. Что произойдет, если 2 потребителя совершат разные смещения? -> Вы бы прочитали сообщения дважды или пропустили некоторые из них!

...