Как обмениваться моделями между различными сервисами / репозиториями, используя postgres / knex.js / objection.js в node.js? - PullRequest
0 голосов
/ 12 июня 2018

В стандартной архитектуре микросервисов каждая служба отвечает за свои собственные данные с установленными границами.Единственный способ манипулировать этими данными - использовать конечные точки RESTful, предоставляемые службой.

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

Затем необработанные данные будут использованы и объединены в нормализованную структуру в другой таблице другим процессом.Я хотел бы разделить все эти процессы на небольшие развертываемые компоненты, но это означает, что я должен каким-то образом делиться определениями модели между несколькими репозиториями / проектами, поскольку логика агрегации должна потреблять все необработанные данные.

ЭтоВозможно, что логика агрегации делает запрос к каждому кластерному процессу скребка, но контроль состояния для этого будет намного сложнее, чем просто запрос к таблице.

Я знаю, что можно определить определения модели в изолированном репоа затем импортировать как зависимость в другие проекты, но правильная ли это архитектура?

1 Ответ

0 голосов
/ 12 июня 2018

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

...