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