Влияет ли количество групп потребителей на производительность Kafka

Пытаясь глубже понять модель распределения Kafka, одно предложение из StackOverflow вызвало у меня шум, и я не могу ни получить подтверждение, ни опровергнуть.

Таким образом, чем больше у вас групп подписчиков, тем ниже производительность, поскольку kafka необходимо реплицировать сообщения во все эти группы и гарантировать полный порядок.

Насколько я понял из документации Kafka, несколько групп потребителей действуют аналогично отдельным потребителям. Внутри брокеров репликация не выполняется, поскольку каждый потребитель имеет собственное смещение для определенного раздела. Таким образом, количество групп не должно приводить к значительным накладным расходам, все данные находятся в одном месте, отличается только смещение. Это верно?

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


person Aleksandar Stojadinovic    schedule 09.02.2016    source источник


Ответы (2)


Это не влияет на производительность процесса kafka, но поскольку 2 или более группы потребителей означают, что в 2 или более раз больше чтения с серверов kafka, это влияет на использование сети в исходящем трафике, если у вас много групп потребителей. Кроме того, данные считываются в основном из памяти и не влияют на производительность, потому что оперативная память намного быстрее, чем сетевое взаимодействие.

person halil    schedule 10.02.2016
comment
Спасибо, приятное продолжение :). - person Aleksandar Stojadinovic; 11.02.2016

Я сам нашел ответ, он находится в новом потребителе Документы API для Kafka 0.9 и более поздних версий:

Концептуально вы можете думать о группе потребителей как о едином логическом подписчике, который состоит из нескольких процессов. Как система с несколькими подписками, Kafka, естественно, поддерживает создание любого количества групп потребителей для данной темы без дублирования данных (дополнительные потребители на самом деле довольно дешевы).

Итог: нет, несколько групп потребителей не снижают производительность, по крайней мере, незначительно.

person Aleksandar Stojadinovic    schedule 10.02.2016