Интересно, можете ли вы помочь? Я пишу систему заказов и в настоящее время внедрил микросервис заказов, который заботится о размещении заказов. Я использую DDD с источником событий и CQRS.
Служба заказа сама принимает команды, которые генерируют события, а служба фактического заказа слушает свое собственное событие для создания модели чтения (идея заключается в том, чтобы использовать CQRS,поэтому команды для записи и запросы на чтение)
После реализации вышесказанного я столкнулся с проблемой, и, вероятно, просто я не совсем понимаю правильный способ сделать это.
Порядокна самом деле есть иждивенцы, что означает, что для заказа нужны клиент и продуктТаким образом, у меня будет 2 дополнительных микросервиса для клиента и продуктов.
Для простоты я хотел бы сосредоточиться на клиенте (хотя у меня точно такая же проблема с продуктами, но я думаю, что если я исправлюпроблема клиента, затем автоматически устраняется и другая).
Итак, вернемся к проблеме. Для создания заказа необходим заказчик (и продукты), в настоящее время у меня есть customerId на клиенте, поэтому, отправляя команду службе заказа, я могу передать customerId.
Я хотел бысохранить имя и адрес клиента с заказом. Как я могу получить имя и адрес customerId из Службы поддержки клиентов в Службе заказов?
Полагаю, что если данные из одной службы нуждаются в данных из другой службы, как я могу получить эти данные? .
Может ли служба заказа создать событие для получения записи о клиенте? Это создаст много сложностей (больше событий) в системе
Микросервисы НЕ связаны, поэтому служба заказа не может просто вызвать модель чтения клиента.
Кто-нибудь может помочь мне в этом?