Найти тему
Дед Мазай на Котлине

Архитектурные стили приложений ч.3

Архитектура на основе пространства

Данный стиль архитектуры отличается высокой масштабируемостью, адаптируемостью и высоким уровнем параллелизма, которые достигаются за счёт отказа от центральной базы данных как синхронного ограничителя в системе и использования вместо неё реплицированных сеток данных в памяти (in-memory data grids).

Данные приложения сродержатся в оперативной памяти и реплицируются во всех активных блоках обработки данных. Блоки обработки запускаются и останавливаются динамически по мере увеличения и уменьшения нагрузки. при обработке данных блоки асинхронно отправляют информацию в базу данных, как правило, через очередь сообщений.

-2

Ключевыми понятиями данного архитектурного стиля являются:

  • нода - хост для развёртывания одного или нескольких компонентов системы
  • блок обработки - содержит веб-компоненты и бизнес-логику бэкенда
  • виртуализированное связующее ПО - управляет блоками и координирует их деятельность. Это ПО как бы "размазано" по нодам и выполняет функции:
    - балансировка нагрузки,
    - реплицирование данных,
    - управление согласованной обработкой запросов (медиатор между блоками обработки),
    - управление динамическим запуском и остановом блоков обработки.
  • средство переноса данных - для асинхронной отправки данных в базу данных (реализуется на основе средства обмена сообщениями)
  • средство записи данных - записывает обновлённые данные в базу данных
  • средство чтения данных - считывает информацию из базы данных при запуске блоков обработки.

Средство записи данных можетбыть единым для данных всех предметных данных.

-3

Или может быть отдельное средство записи данных на каждую предметную область.

-4

Средства чтения данных вызываются только в одной из трех ситуаций:

  • при сбое всех экземпляров блоков обработки с одним и тем же именованным кэшем,
  • при повторном развертывании всех блоков обработки с одним и тем же именованным кэшем,
  • при получении архивных данных, не содержащихся в реплицированном кэше.

Любая операция чтения данных из базы данных в кеш выполняется доволно значительное время, особенно на старте системы. Время чтения данных из базы данных и формирования сетки данных может занимать от нескольких минут, до нескольких часов. Поэтому таких операций стараются избегать.

Примерами средств для реализации архитектур на основе пространства являются:

  • Hazelcast
  • Apache Ignite
  • Oracle Coherence.