MicroServices отдельные базы данных - PullRequest
0 голосов
/ 21 февраля 2020

Я создаю микроуслуги, например, один для управления пользователями , т. Е. (Роли, учетные данные, права, меню и т. Д. c) и один для банковских реквизитов, теперь у меня есть сценарий чтобы получить подробные сведения о ролях пользователей и правах из db, рекомендуется ли повторять столбцы базы данных управление пользователями db т.е. (роли, права) в банковский счет db согласно требованию или дубликаты данных в банк-счет db ?

Или нет необходимости дублировать данные в bank-account db и отправлять отдельный вызов, чтобы сначала получить данные пользователя из управление пользователями дБ ?

пожалуйста, предложите лучшую возможность

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Я согласен с @Stepan Tsybulski. Кроме того, я предлагаю вам свести к минимуму необходимость ограниченного контекста в зависимости от другого. Таким образом, дублирование данных является лучшим вариантом здесь. Однако вам не нужно иметь роли и права в контексте банковского счета / БД. Я бы добавил в контекст банковского счета только то, что необходимо в этом контексте: данные пользователя (например, имена, даты рождения и т. Д. c.) + Идентификатор пользователя.

Вы получаете роли и права из сеанса. Вы управляете ролями только в контексте управления пользователями. Это хорошо для безопасности и согласованности, плюс это причина использования контекстов.

Есть много способов решения проблемы, но я так и делаю.

0 голосов
/ 22 февраля 2020

Waqas,

Вы находитесь в среде микроуслуг. Существует хорошо известный дизайн, управляемый доменом (DDD) с одним из ключевых шаблонов Ограниченный контекст . Это означает, что вы должны стараться избегать смешивания контекстов и дублировать информацию пользователя в bank-account db (это может быть неизбежно некоторое время, но я полагаю, не в вашем случае).

Поэтому , хорошо, что вам нужно позвонить в службу user management , чтобы получить необходимую информацию о ваших пользователях.

...