Распределенная архитектура: Кафка, Рой, другие - PullRequest
0 голосов
/ 24 августа 2018

Я ищу советы о лучшей архитектурной организации для распределенной системы со следующими характеристиками:

  • На одном или нескольких компьютерах будет доступна серия кодированных файлов каждую минуту (около 100 файлов в минуту или 1 Гбит / мин)
  • Необходимо обработать эти файлы в кластере для их декодирования. Каждый файл генерирует строки в нескольких таблицах. Существует более одного типа кодировки.
  • Каждый файл должен быть обработан только один раз
  • Эти строки таблицы необходимо вставить в базу данных
  • База данных распределена и уже доступна в облаке.

Пока что я оцениваю две возможности:

  • Используйте docker swarm для обработки закодированных файлов и вставки данных в базу данных.

    • Недостаток: время, затрачиваемое на вставку данных в базу данных, больше, чем если бы вы позже использовали аккумулятор для выполнения массовой вставки. Ресурсы для переработки отходов, ожидающие вставки)
  • Используйте Apache Kafka, чтобы подключиться ко всем хостам, обслуживающим файлы, поместить их в поток или пакет и обработать их. Впоследствии, бросить записи в выходной поток для вставки в базу данных.

    • Недостаток: трудности с масштабированием кластера Kafka из-за большого количества тем в сравнении с различными типами обработки для декодированных файлов и требованием обработки файла ровно один раз

1 Ответ

0 голосов
/ 29 августа 2018

Swarm просто организует приложения в контейнерах на нескольких хостах.Я не понимаю, как это связано с вашей архитектурой приложения.Если вы будете следовать 12factor.net идеям по проектированию распределенной системы, любой контейнерный оркестратор будет работать.

...