Работа с перечислением в архитектуре микросервисов - PullRequest
0 голосов
/ 11 мая 2018

Недавно я столкнулся с проблемой, когда проектировал архитектуру микросервисов нашей новой системы.Чтобы дать больше контекста, давайте предположим, что у нас есть два разных сервиса.

  • Служба несет ответственность за проведение платежей, а другая

  • B отвечает за отслеживание заказов.

У нас есть сценарий использования, в котором нам нужно обновить состояние заказа из сервиса A.

У нас есть эти состояния в списке перечисления внутри сервиса B.

Как можно избежать разделения этого перечисления между двумя службами?Мне нужно отключить услуги.

Пожалуйста, не стесняйтесь обращаться за разъяснениями.

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Не уверен, правильно ли я понял ваш вопрос.Допустим, в вашем платежном сервисе есть три случая, например: успех, сбой, ожидание, и есть определенные состояния, определенные в сервисе заказов.И мы не хотим делить что-либо между этими двумя микросервисами с точки зрения состояний данных.Предложил бы вам опубликовать событие в очереди для любого данного состояния оплаты.И сделать службу заказа, чтобы прослушать это событие, и иметь условную логику для обновления статуса заказа здесь.Таким образом, мы можем получить слабосвязанные услуги.

0 голосов
/ 12 мая 2018

То, что вы описываете, звучит как Сервис A, зависит от Сервиса B, и должен быть необходимый интерфейс сервиса.Если состояния - это информация, предоставляемая службой, они должны рассматриваться как часть API и, таким образом, предоставляться потребителям как часть описания API.

Также общее примечание - я предполагаю, что причиной, по которой вы задаете вопрос, является отсутствие безопасности относительно точных границ обслуживания.Обратите внимание, что построение правильных границ сервиса - самая сложная часть проектирования любой системы в архитектурном стиле микросервисов.Границы, как правило, должны быть специфичными для домена, но потенциально также должны учитывать организационные и технические ограничения.Смотрите эту статью , и я рекомендую прочитать все материалы Фаулера по этому вопросу.

...