Горизонтальное масштабирование потоковых систем

Концепции потоковой обработки

Mike Metzger

Data Engineer

Горизонтальное масштабирование: основы

  • Вместо масштабирования «вверх» — масштабирование «вширь»
  • Как правило, подразумевает добавление узлов, а не замену их более мощными
  • Лучше всего подходит для легко параллелизуемых задач
    • Задачи, которые легко разбить на части
    • Например, обработка большого набора независимых изображений
Концепции потоковой обработки

Горизонтальное масштабирование для потоков

  • Обработка потоковых данных обычно выполняется с минимальными задержками
  • Передача данных между узлами может быть затруднена
  • Лучше обрабатывать поток целиком в одном конвейере
  • Масштабирование достигается за счёт копий конвейеров
Концепции потоковой обработки

Копии конвейеров

  • При возникновении события оно поступает в конвейер
  • Все связанные задачи выполняются внутри конвейера до завершения
  • Масштабирование достигается добавлением новых конвейеров
  • Внутри конвейера по-прежнему возможно вертикальное масштабирование
Концепции потоковой обработки

Дополнительные аспекты

  • Могут потребоваться дополнительные компоненты
  • Балансировщик / распределитель нагрузки
    • По принципу раздачи карт
    • Наименее загруженный узел
  • В конечном счёте возникают узкие места
    • Скорость записи на диск
  • Рассмотрите возможность сокращения конвейера
    • Уберите необходимость немедленной обработки данных
Концепции потоковой обработки

Давайте потренируемся!

Концепции потоковой обработки

Preparing Video For Download...