Основы Kafka Streams объяснение

У меня есть несколько вопросов относительно потоков Kafka и того, как они работают, я знаком с общей парадигмой потребителей и производителей Kafka, однако я впервые пытаюсь использовать потоки Kafka.

Вопросы:

  1. В общей модели потребителя Kafka мы подписываемся на тему и начинаем потреблять с раздела, для простоты предположим, что у нас есть 1 раздел и 1 потребитель, теперь, если мы хотим увеличить нашу обработку, мы увеличиваем количество разделов и дополнительно добавляем больше потребителей, как это работает в Kafka Streams, если мы увеличиваем разделы, как нам масштабировать приложение, нужно ли нам добавлять больше машин или нам нужно делать что-то еще?
  2. Когда я потребляю данные через потребителей Kafka, я могу в конечном итоге что-то сделать с сообщениями, например, я могу запросить API, загрузить файл и записать в NFS и перенаправить сообщение или записать значение входящего сообщения в базу данных, а затем перенаправить уведомление в другую тему Kafka, как решается тот же вариант использования, когда мы не следуем парадигме KAFKA -> KAFKA, а вместо этого используем KAFKA -> PROCESS(STORE IN DB) -> KAFKA, могут ли потоки Kafka решить этот вариант использования?
  3. Наконец, как обрабатываются исключения и как управляются смещения. В постоянно работающих производственных системах, куда поступает бесконечный поток сообщений, в случае каких-либо исключений, например, из-за сбоя в сети, мы отключаем потребителей и выполняем чистую установку. Как добиться того же с приложением обработки Kafka Stream?
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
1
0
607
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. Consumer API по-прежнему работает точно так же за кулисами. Чтобы ответить на вопрос - вы запускаете больше запущенных экземпляров приложения; они не обязательно должны быть на совершенно разных серверах

  2. На самом деле не рекомендуется использовать Kafka Streams для удаленной работы, которая не ограничивается взаимодействием с Kafka-Kafka. По крайней мере, без принятия этого решения возникает задержка, и поэтому этого не следует делать, например, при объединении тем, которые зависят от временных окон. Kafka Connect может быть вашей системой для переноса данных из темы в базу данных

  3. Опять же, Kafka Streams - это просто слой над API производителя / потребителя. Вы по-прежнему будете получать те же сетевые исключения, или, если вы прочитаете поврежденную запись, есть варианты обращения с записями о ядовитых таблетках

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