Я разрабатываю платформу анализа анализа в архитектуре микросервисов.Обмен огромными данными между микросервисами
Приложение работает, как показано ниже;
- все отзывы о продукции, извлекаемые из электронной коммерции-сайта-а (сайт-а) в качестве файла Excel
- Отзывы загружаются в систему с первенствует
- Анализ агент может перечислить все отзывы, редактировать некоторые из них, удалить или одобрить
- Аналитический агент может экспортировать все обзоры для сайта-a
- Автоматические проверки на основе регулярного выражения применяются для каждого обзора при загрузке и редактировании.
У меня есть 3 микросервиса.
- Отзывы: Ответственные за операции Обзор Crud плюс операций, аналогичных утвердить/отклонить ..
- Validations: Ответственный за определение и применение правил проверки на рассмотрение.
- Экспорт/Импорт: экспорт Экспорт услуг огромные файлы, указанные имя сайта (например, сайт-а)
Проблема заключается в какой-то момент, служба проверки требует, чтобы получить все отзывы на сайте-а, применить проверку правила и генерировать ошибки, если они есть. Я знаю, что разделение схемы базы данных и сущностей ломает архитектуру микросервисов.
Одним из возможных решений является
- Когда служба проверки требует обзоров для сайта, он запрашивает шлюз, шлюз перенаправляет запрос Отзывы службы и реагирования приняты.
Два возможные недостатки этого подхода является
- служба проверки знает о шлюзе? Это приносит зависимость?
- в случае, если у меня есть 1b обзоров для сайта, получение всех отзывов через запрос на отдых может быть проблемой. (Или нет, я могу сделать запросы от разбитых на страницах службы проверки шлюза ..)
Так что лучшая практика для обмена больших объемов данных между микро-услугами без
- разделения сущности
- и dublicating данные
Я прочитал много об использовании очередей сообщений, но я думаю, что в моем случае нехорошо использовать очередь сообщений для совместного использования гигабайт данных.
Редактировать 1: Вместо совместного использования объекта, использование хранилищ данных с API для отдыха может быть решением?Предположим, что я использую mongodb вместо совместного использования объекта объекта между микросервисами, я могу использовать интерфейс отдыха mongo (http://restheart.org/) и запрашивать данные, когда это возможно.
Вы можете попробовать шаблоны интеграции предприятия. Я не знаю шаблона, который решает конкретный случай использования, но он должен быть покрыт ими. – k1133