Kafka Streams количество потоков, на переделе - PullRequest
2 голосов
/ 25 марта 2019

У меня есть приложение Kafka Streams, которое читает одну тему Kafka с 5 разделами.

Затем данные объединяются / перераспределяются несколько раз.

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

Вы можете запустить столько потоков приложения, сколько имеется входных разделов темы Kafka

Что означает в моемПотоки case 5 - это максимальное количество действующих потоков.

Но этот блог утверждает, что перераспределение удваивает число максимально эффективных потоков:

... Эта тема автоматически создается с тем же числом разделов, что и исходная тема. Это означает, что наше приложение теперь считывает данные из 16 разделов с 8 потоками, что создает определенную конкуренцию.

Что также является разумныммне, потому что Kafka Streams придется читать из внутренних тем, которые он тоже создает.

Итак, максимальное количество действующих потоковых 5 разделов или 5 * (перераспределений)?

1 Ответ

2 голосов
/ 26 марта 2019

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

Максимальное количество используемых потоков - это количество созданных задач.

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

В общем, трудно сказать заранее, сколько задач было создано Kafka Streams.Вы можете получить под-топологии через Topology#describe().Если все разделы имеют одинаковое количество разделов, число задач будет #numPartition * #numSubTopoogies.

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

...