Please enable JavaScript.
Coggle requires JavaScript to display documents.
Глава 7 Реализация запросов в микросервисной архитектуре - Coggle Diagram
Глава 7 Реализация запросов в микросервисной архитектуре
Шаблоны для запросов
Объединение API
CQRS, Разделение ответственности командных запросов
7.1. Выполнение запросов с помощью объединения API
структура
API-композитор — реализует операцию запроса, обращаясь к сервисам-провай дерам;
сервис-провайдер — сервис, которому принадлежат данные, возвращаемые за просом
Архитектурные проблемы
Кто играет роль API-композитора
Клиент, проблемы если в другой сети или с низкой скоростью соединения
API-шлюз для простых запросов
Отдельный сервис для внутренней агрегации и сложных запросов
API-композитор должен уметь в реактивность
Преимущества и недостатки
объединения API
дополнительные накладные расходы;
риск снижения доступности
нехватка транзакционной согласованности данных.
Применение шаблона CQRS
Преимущества CQRS
Улучшенное разделение ответственности
Возможность выполнения запросов в приложении, основанном на порождении событий
Возможность эффективной реализации разнородных запросов
Возможность эффективной реализации запросов в микросервисной архитектуре
Причины использования
Необходимость в разделении ответственности
Непростой односервисный запрос findAvailableRestaurants()
Проблемы запросов
Объединение API для извлечения данных, разбросанных по разным сервисам, приводит к затратным малоэффективным операциям JOIN, выполняемым в памяти.
Сервис, владеющий данными, хранит их в формате или базе данных, которые не имеют эффективной поддержки нужного запроса.
Необходимость разделения ответственности означает, что реализацией запроса должен заниматься не тот сервис, который владеет данными.
Отдельная БД на запросы, отдельная на команды
Недостатки CQRS
более сложную архитектуру
отставание репликации