Задать вопрос

Как организовать передачу данных между микросервисами (при наличии общей БД)?

Добрый день, нужна пара глобальных советов по тому, как организовать некоторые процессы.
Имеется вот такая черновая структура.
5c43239da3b2c128740013.png
Она предполагает что фронт часть - это один большой сервис, у которого есть так называемые "модули" это по факту другие АПИ сервисы которые расширяют функционал системы.
И логика такова что у сервиса будет единая база клиентов, что бы была только одна точка регистрации у клиента и кроме этого в общем базе будут храниться лимиты для каждого АПИ (количество запросов в месяц, согласно тарифу, который выбирает клиент системы).
Вопрос в следующем: как корректней всего должны общаться между собой АПИ сервисы, что бы они имели всегда актуальные данные из общей БД ?, это по факту текущие лимиты и права доступа.

П.С Авторизация всегда будет проходить через общую базу и центральный АПИ (он будет точкой входа всех приложений). Но так как у каждого сервиса свои особые отличия и назначения, то после авторизации каждый сервис использует свою БД для хранения данных. При это все это закреплено за пользователем
  • Вопрос задан
  • 1341 просмотр
Подписаться 5 Простой 2 комментария
Решения вопроса 1
@luna3956
У Вас есть главный(центральный) апи, главная база и дополнительные апи со своими базами.

Если у вас из фронта можно напрямую обращаться к дополнительным апи, то перед обращением делаете запрос к главной базе и проверяете, есть ли права и лимиты, если есть то только в этом случае формируете обращение к дополнительному АПИ.

Либо же сделайте невидимую прослойку через центральный АПИ. То есть если пользователю нужно что-то из дополнительного апи сервиса, то запрос идет сначала на центральный сервер, в нем проверяется есть ли права и лимиты, и если все ок то запрос прокидывается дальше в дополнительный апи.

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

Войдите, чтобы написать ответ

Похожие вопросы