Микросервисная архитектура обмена данными / управления - PullRequest
0 голосов
/ 01 ноября 2018

Я стремлюсь к разработке корпоративных приложений с использованием микросервисного подхода. Один из актуальных вопросов, который у меня есть, - как я собираюсь делиться распределенными данными между микросервисами.

Изображение для обмена данными на микросервисах

на изображении выше, в микросервисе «Заказчик» и «Заказ» указаны сведения о клиенте, хотя в микросервисе «Заказ» информация о клиенте разбита только на обязательные поля. Я понимаю, что есть способ поддерживать согласованность данных между микро-сервисами, используя события.

Вопросы :

  1. Является ли эта модель (см. Изображение) практичной / масштабируемой?
  2. Если данные клиента охватывает 10 микросервисов, значит ли это, что у меня 800 000 клиентов тогда все 10 микросервисов будут иметь данные 800K
  3. что лучше подход Для большого набора данных, который используется совместно microservices.

1 Ответ

0 голосов
/ 03 ноября 2018

Микросервисы должны быть слабо связаны, чтобы их можно было разрабатывать и развертывать независимо, каждый микросервис имеет свою собственную цель и raison d'être , микросервис имеет четко определенный и однозначный API для доступа к своему данные.

В вашем случае, если у вас есть Customer microservice, он должен управлять всеми данными и операциями с клиентами, если вам нужны некоторые данные о конкретном клиенте в вашем Order microservice, вы должны использовать Customer microservice через его API для извлечения этих данных; Order microservice не должен хранить никаких данных о клиенте.

Например, если вам нужны в ваших Order microservice данных Джона Доу, вы должны использовать Customer microservice для извлечения данных для клиента с id = 22, эта диаграмма показывает идею моего ответа .

И решение ваших вопросов ...

  1. Нет, он не масштабируется, потому что у вас избыточность данных.
  2. Нет, только один микросервис должен управлять данными клиента, а другие микросервисы должны его использовать.
  3. Лучше объяснить с помощью хорошо известного паттерна , чтобы решить эту проблему; База данных для шаблона обслуживания .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...