Объяснение основ потока Кафки - PullRequest
0 голосов
/ 22 декабря 2018

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

Вопросы:

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

1 Ответ

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

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

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

...