У меня есть два микросервиса. Микросервис А отвечает за хранение информации о сотрудниках. Есть два стола, люди и пилоты. Лица содержат данные об имени, адресе электронной почты, телефоне, а также типе этого человека (может быть пилот, экипаж и т. д.). У пилотов есть внешний ключ к этому человеку. В микросервисе B у меня есть таблица резервирования, в которой должна быть ссылка на пилотную версию и некоторые дополнительные сведения, такие как имя и адрес электронной почты, поскольку у меня есть задание, которое будет выполняться каждый день и отправлять несколько электронных писем при выполнении определенных условий.Первая идея заключалась в том, чтобы иметь в микросервисе B таблицу Pilot, которая будет содержать важные данные об этом пилоте, включая некоторую информацию от соответствующего лица, и использовать этот идентификатор пилота в качестве внешнего ключа при бронировании. Эта таблица должна обновляться при создании пилотного проекта в микросервисе A путем подписки на событие или при обновлении соответствующего человека.
Вторая идея заключалась в том, чтобы хранить таблицы Pilot и Person в микросервисе. B, но только с существенной информацией о каждом объекте. Пилот также связан с человеком через внешний ключ, как в микросервисе А, а также имеет пилотный вариант в бронированиях через внешний ключ.
Третья идея заключалась в том, чтобы хранить только пилотный идентификатор из микросервиса А непосредственно в микросервисе. B в таблице заказов и всякий раз, когда мне нужна дополнительная информация, чтобы позвонить в микросервис A и получить электронную почту и полное имя или что-то еще, что мне нужно, и таким образом я избегаю управления данными при обновлении в микросервисе A, а также дублирую данные и методы обновления.
Вторая идея, похоже, содержит слишком много дублирующихся данных и кода, и я думаю, что ее будет сложнее поддерживать. Также я не знаю, нарушит ли это принцип микросервисов.
Третья идея может в какой-то момент привести к проблемам с производительностью, но я не уверен.
Какой подход должен быть наиболее подходящим для этого сценария?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -other-one
Как управлять информацией базы данных из одного микросервиса в другой ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение