Создание экземпляра nservicebus iBus с другим транспортным протоколом в обработчике. MSMQ в Azure
У нас есть существующая служебная шина, запущенная из MSMQ, которая использует событие, которое должно опубликовать команду на шину, работающую в Azure.
Мы выставляем лазурь внешнему миру и сохраняем msmq для внутренних сообщений.
Я попытался создать экземпляр шины только для отправки, чтобы выполнить это, но без удачи, некоторые указатели / примеры кода будут с благодарностью.
РЕДАКТИРОВАТЬ
Я не нашел ответа на этот вопрос, и мой обходной путь на данный момент состоит в том, чтобы настроить веб-API, на котором размещается nservicebus с Azure в качестве транспортного протокола. Поэтому мой потребитель MSMQ вызовет API, и этот API отправит команду на нашу шину Azure. Не идеально... вообще, но это то, что я мог придумать.
EDIT2
Создан немного другой, но связанный с этим вопрос относительно конфигурации шлюза: Nservicebus msmq для лазурной очереди с использованием шлюза
2 ответа
Я собрал все свои комментарии в этот ответ и добавил еще.
Попробуйте использовать шлюз NServiceBus для связи между узлами.
Шлюз является мостом между несколькими сайтами. Каждый сайт может выбрать свою технологию очередей. Единственное, что должно быть общим - это сериализатор. (хотя это было зарегистрировано как ошибка).
Когда в статье говорится, что http / https - это единственный поддерживаемый тип каналов, но облачные сайты, такие как Azure / Amazon SQS, запланированы на будущее, это относится только к технологии мостового соединения. При наличии канала шлюза Azure (или Amazon SQS) промежуточный шаг HTTP(S) не требуется.
Текущие примеры:
a) MSMQ Q на сайте A => канал HTTPS => Azure Q на сайте B
б) MSMQ Q на сайте A => HTTPS канал => SQL Q на сайте B
Будущие примеры:
a) MSMQ Q на SiteA => канал Azure, который также является Azure Q на SiteB
б) MSMQ Q на сайте A => канал Azure => SQL Q на сайте B
Каналы ссылаются на транспортный протокол, используемый шлюзом. Технология очередей, используемая конечной точкой, не имеет значения.