Когда приложение Kafka Streams должно быть разделено на несколько приложений? - PullRequest
0 голосов
/ 13 октября 2018

Как вы узнаете, когда нужно разделить приложение Kafka Streams на несколько приложений?

Например, я работаю над контейнерным приложением Streams, которое обрабатывает записи, передаваемые из базы данных, и выводит их в новоепоток.Каждая таблица имеет свой собственный поток - как на стороне потребления, так и на стороне производства - и каждый создаваемый новый поток должен использоваться для одной и той же логической цели.

В этом случае целесообразно разделитьприложение в отдельные потоковые приложения для каждого табличного потока или лучше выполнить всю эту обработку в одном приложении?

Вот то, что я вижу как плюсы и минусы разделения приложения Kafka Streamsв несколько приложений:

Плюсы

  • Изменение способа обработки конкретного потока таблицы в будущем означает только необходимость перезапустить контейнеры, которые выполняют эту обработку.
  • Каждое приложение чрезвычайно легкое и предназначено для одной цели (в этом примере обрабатывать поток таблицы базы данных и выводить этот новый способ).

Минусы

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