Нет ничего необычного в том, чтобы иметь несколько вызовов, необходимых для поддержки одного запроса.
аюсь создать микросервисную архитектуру, используяLumen / Laravel Passport.
У меня есть несколько dockerized сервисов, которые все работают как отдельный контейнер приложений Lumen на разных виртуальных машинах:
Сервис API Gateway (интегрирован с Laravel Passport для аутентификации и проверки запросов для дальнейшей обработки)Чат Сервис (сервис для обмена сообщениями / чаты)Служба новостей… (И многие другие услуги)Все эти сервисы имеют свои собственные отдельные базы данных Redis / MySQL, например.
В монолитном приложении, например, в базе данных была таблица User, были связи между таблицами и так далее. Я использовал JOIN и другие запросы для извлечения данных в соответствии с логическим выбором для текущего идентификатора пользователя.
Но теперь у меня есть общая страница в приложении Mobile / Web, например, и я должен получить многократную информацию из разных служб для одной текущей видимой страницы.
И для получения этих данных я отправляю несколько запросов в разные сервисы
Вопрос:
Какова наилучшая / правильная практика хранения пользовательской информации с использованием архитектуры микросервисов и как правильно извлекать соответствующие данные для этого пользователя из других микросервисов с минимальными потерями памяти / времени? И где хранить информацию пользователей, такую как id, телефоны e.t.c, чтобы избежать дублирования данных?
Извините за возможное дублирование. Пытаюсь понять ..