Микросервисы должны быть слабо связаны, чтобы их можно было разрабатывать и развертывать независимо, каждый микросервис имеет свою собственную цель и raison d'être , микросервис имеет четко определенный и однозначный API для доступа к своему данные.
В вашем случае, если у вас есть Customer microservice
, он должен управлять всеми данными и операциями с клиентами, если вам нужны некоторые данные о конкретном клиенте в вашем Order microservice
, вы должны использовать Customer microservice
через его API для извлечения этих данных; Order microservice
не должен хранить никаких данных о клиенте.
Например, если вам нужны в ваших Order microservice
данных Джона Доу, вы должны использовать Customer microservice
для извлечения данных для клиента с id = 22, эта диаграмма показывает идею моего ответа .
И решение ваших вопросов ...
- Нет, он не масштабируется, потому что у вас избыточность данных.
- Нет, только один микросервис должен управлять данными клиента, а другие микросервисы должны его использовать.
- Лучше объяснить с помощью хорошо известного паттерна , чтобы решить эту проблему; База данных для шаблона обслуживания .