Ссылка на идентификатор ресурса между микросервисами - PullRequest
0 голосов
/ 24 августа 2018

Допустим, у нас есть два микросервиса:

Сервис пользователя:

Управление жизненным циклом пользователя (CRUD), например, регистрация и профиль пользователя.

Возможные apis:

  • / пользователей / регистрация
  • / пользователей /: * 1012 идентификатор пользователя *

Заказать услугу:

Управлять заказом, созданным конкретным пользователем, в этом ограниченном контексте пользователь должен быть «Покупателем».

возможные apis:

  • / заказы

Вопрос

При создании заказа службе заказа необходимо знать, кто является покупателем, поэтому клиент вводит {"buyerId": "xyz"} в качестве параметра, но служба заказа должна подтвердить, что buyerId является существующим пользователем в службе пользователя. до создания заказа.

В моей реализации служба заказов будет использовать HTTP для вызова пользовательской службы / users /: userId api службы пользователя и в качестве идентификатора пользователя будет использовать customerId для проверки того, существует ли покупатель.

В настоящее время все работает нормально, но вот мои проблемы:

  1. Этот подход может объединить службу Order и User, потому что, когда служба User каким-либо образом выходит из строя, служба Order не может проверить ссылку на пользователя и приводит к тому, что служба Order тоже не может работать.

  2. Если пользователя не существует, служба заказа должна ответить пользователю 404 buyer not found, что действительно странно.

Может кто-нибудь дать мне какое-нибудь предложение? спасибо!

...