Наличие нескольких пользовательских таблиц в микросервисной архитектуре - PullRequest
0 голосов
/ 28 января 2019

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

Проект будет обрабатывать более 100 000 пользователей, которые все будут храниться в отдельном сервисе.Вопрос в том, каким будет лучшее решение для обработки отношений с этими пользователями в других базах данных.В настоящее время мы используем только реляционные базы данных (не NoSQL).

Любые мнения о том, должна ли каждая служба иметь таблицу пользователей, содержащую идентификатор, и, возможно, данные, относящиеся к этой службе, или следует сохранить все данные.в центральной службе пользователя и просто добавив индекс на столбец userId?

1 Ответ

0 голосов
/ 28 января 2019

Это зависит от вашего бизнеса и нефункциональных требований.

Например, если ваши нисходящие микросервисы не нуждаются в других полях от сущности User, вам не следует создавать какие-либо локальные таблицы.Под «потребностью» я подразумеваю для целей отображения.

Если вам нужны какие-то атрибуты в других микросервисах, то у вас должен быть хотя бы локальный кеш (то есть SQL Table) с этими полями.Это необходимо для обеспечения устойчивости системы;например, если микросервис Users не работает или работает медленно, другие микросервисы не будут затронуты;они должны быть в состоянии функционировать независимо.В худшем случае эти поля будут пустыми или будут заполнены значением по умолчанию, то есть «информация еще не доступна».

Ваши микросервисы также будут работать быстрее, поскольку им не нужно объединять данные изудаленный источник для выполнения запросов пользователей.

...