Kafka Streams - несколько потоков или несколько экземпляров с одинаковым идентификатором приложения

У меня есть приложение Kafka Streams, которое использует тему "A" с 10 разделами и около 10 тыс. Сообщений в секунду. Я не понимаю, что будет лучше для моего приложения.

To run multiple Kafka Streams application instances with same consumer group.
  OR 
To run single kafka streams application with more num.stream.threads

1 ответ

Как упоминалось в сливном блоге

Максимальный параллелизм, при котором может работать ваше приложение, ограничен максимальным количеством потоковых задач, которое само определяется максимальным количеством разделов входной темы (ов), из которой приложение читает. Например, если ваша тема ввода имеет 5 разделов, вы можете запустить до 5 экземпляров приложений.

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

Также см. Это

Другие вопросы по тегам