Kafka Customer Thread, Task, Partition?

У меня есть кластер kafka, в котором есть 3 машины. И тема в которой 6 разделов(по 2 раздела на каждой машине). Когда я запускаю потребительское приложение, которое имеет 6 потребительских потоков и принадлежит к одной группе. Я знаю, что одному потребительскому потоку будет назначен один раздел. Что я хочу знать, так это: задача потребительского потока будет выполняться на машине, на которой находится раздел? Или будет запускаться на машине, на которой будет запущено приложение?


person littzh    schedule 11.01.2018    source источник


Ответы (1)


Модель, о которой вы говорите, похожа на ту, что у нас есть с Apache Spark, где рабочие процессы для обработки данных запускаются на рабочих узлах, координируемых приложением-драйвером на машине разработчика/пользователя. Кафка так не работает. Брокеры Kafka независимы от приложений Kafka, в которых работают потребители для получения сообщений из тем/разделов. Где вы запускаете свои потребительские приложения, это машина, на которой работает приложение; он не работает на узлах брокера. Приложение со связанными потребителями будет подключаться к «удаленным» узлам брокера для получения сообщений. Верно и то, что вы можете просто запускать свои приложения Kafka на узле брокера так же, как другой процесс JVM, но это не та модель, которую вы описали выше (как я уже сказал, она больше похожа на Apache Spark)

person ppatierno    schedule 11.01.2018