У меня вопрос по микросервисной архитектуре о сервисах, работающих друг с другом. Например;Давайте подумаем о приведенном ниже сенарио в области электронной коммерции.
У нас есть конечная точка BuyProduct и запрос к этой конечной точке.
- Запрос браузера
BuyProduct выполняется. BuyProduct имеет три вызова службы1) Платежный звонокесли платеж не удастсявернуть ложь;ещеПродолжить;2) Фондовая служба вызоваесли сбой на складевернуть ложь;ещеПродолжить;3) Сервисный звонокесли сбой службы учетной записивернуть ложь;ещеПродолжить;
Возврат к успеху или неудаче браузера
В этом примере я принял состояние успеха или сбоя при переходе от вызова службы к другой службе,Но, например, может возникнуть ситуация, когда значения, возвращаемые из вызова платежного сервиса в запрос вызова сервисного обслуживания.
Мой вопрос:
Если у нас есть брокер сообщений и мы хотим создать асинхронную архитектуру сброкер сообщений (например, rabbitmq или другой). Как мы можем реализовать этот senario? Будет ли это решение действительным или есть какое-либо решение? Какова лучшая практика? Я погуглил, но не смог найти решение, которое меня удовлетворило?
Я не уверен, что мое решение, на мой взгляд, верное (я имею в виду архитектуру синхронизации покоя)
Если браузер ожидает немедленного результата имы хотим гарантировать успешное завершение или сбой наших процессов. Что будет?
Когда мы думаем, что этот senario полностью или ничего, что мы можем сделать?