Архитектура на основе пространства
Данный стиль архитектуры отличается высокой масштабируемостью, адаптируемостью и высоким уровнем параллелизма, которые достигаются за счёт отказа от центральной базы данных как синхронного ограничителя в системе и использования вместо неё реплицированных сеток данных в памяти (in-memory data grids).
Данные приложения сродержатся в оперативной памяти и реплицируются во всех активных блоках обработки данных. Блоки обработки запускаются и останавливаются динамически по мере увеличения и уменьшения нагрузки. при обработке данных блоки асинхронно отправляют информацию в базу данных, как правило, через очередь сообщений.
Ключевыми понятиями данного архитектурного стиля являются:
- нода - хост для развёртывания одного или нескольких компонентов системы
- блок обработки - содержит веб-компоненты и бизнес-логику бэкенда
- виртуализированное связующее ПО - управляет блоками и координирует их деятельность. Это ПО как бы "размазано" по нодам и выполняет функции:
- балансировка нагрузки,
- реплицирование данных,
- управление согласованной обработкой запросов (медиатор между блоками обработки),
- управление динамическим запуском и остановом блоков обработки. - средство переноса данных - для асинхронной отправки данных в базу данных (реализуется на основе средства обмена сообщениями)
- средство записи данных - записывает обновлённые данные в базу данных
- средство чтения данных - считывает информацию из базы данных при запуске блоков обработки.
Средство записи данных можетбыть единым для данных всех предметных данных.
Или может быть отдельное средство записи данных на каждую предметную область.
Средства чтения данных вызываются только в одной из трех ситуаций:
- при сбое всех экземпляров блоков обработки с одним и тем же именованным кэшем,
- при повторном развертывании всех блоков обработки с одним и тем же именованным кэшем,
- при получении архивных данных, не содержащихся в реплицированном кэше.
Любая операция чтения данных из базы данных в кеш выполняется доволно значительное время, особенно на старте системы. Время чтения данных из базы данных и формирования сетки данных может занимать от нескольких минут, до нескольких часов. Поэтому таких операций стараются избегать.
Примерами средств для реализации архитектур на основе пространства являются:
- Hazelcast
- Apache Ignite
- Oracle Coherence.