Использование MassTransit для маршрутизации в среду разработки - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь использовать MassTransit (с Azure ServiceBus) для соединения двух процессов, но также разрешить разработку одной из этих служб из локальной среды и вместо этого выполнить маршрутизацию в эту локальную среду.

Таким образом, поток данных не для разработки будет выглядеть следующим образом:

  1. ServiceA (в EnvironmentA) отправляет EventA в ServiceB (в EnvironmentA)
  2. ServiceB (в EnvironmentA) отправляет EventB вServiceA (в среде EnvironmentA)

Затем, когда разработчик хочет выполнить отладку в ServiceA, поток данных изменяется следующим образом:

  1. ServiceA (в EnvironmentB ) отправляет EventA в ServiceB (в EnvironmentA)
  2. ServiceB (в EnvironmentA) отправляет EventB в ServiceA (в EnvironmentB )

Существует множество способов настройкиэто, но я предполагаю, что кто-то уже решил эту проблему.

Например, вместо одной подписки у вас может быть две подписки, по одной для каждой среды, и каждая с правилом подписки, которое ищет определенное значение в свойстве «Кому».Когда ServiceA отправляет сообщение, оно указывает в сообщении свойство «ReplyTo», затем ServiceB отслеживает «ReplyTo» и помещает его в свойство «To» в сообщении возврата.Однако я не знаю, как настроить это правило подписки из MassTransit.

  1. ServiceA (в EnvironmentB) отправляет EventA ( с "ReplyTo = EnvironmentB" ) в ServiceB (в EnvironmentA)
  2. ServiceB (в EnvironmentA) отправляет EventB ( с «To = EnvironmentB» ) в ServiceA (в EnvironmentB)
...