Допустим, у нас есть два микросервиса:
Сервис пользователя:
Управление жизненным циклом пользователя (CRUD), например, регистрация и профиль пользователя.
Возможные apis:
- / пользователей / регистрация
- / пользователей /: * 1012 идентификатор пользователя *
Заказать услугу:
Управлять заказом, созданным конкретным пользователем, в этом ограниченном контексте пользователь должен быть «Покупателем».
возможные apis:
Вопрос
При создании заказа службе заказа необходимо знать, кто является покупателем, поэтому клиент вводит {"buyerId": "xyz"}
в качестве параметра, но служба заказа должна подтвердить, что buyerId
является существующим пользователем в службе пользователя. до создания заказа.
В моей реализации служба заказов будет использовать HTTP для вызова пользовательской службы / users /: userId api службы пользователя и в качестве идентификатора пользователя будет использовать customerId для проверки того, существует ли покупатель.
В настоящее время все работает нормально, но вот мои проблемы:
Этот подход может объединить службу Order и User, потому что, когда служба User каким-либо образом выходит из строя, служба Order не может проверить ссылку на пользователя и приводит к тому, что служба Order тоже не может работать.
Если пользователя не существует, служба заказа должна ответить пользователю 404 buyer not found
, что действительно странно.
Может кто-нибудь дать мне какое-нибудь предложение? спасибо!