0

У меня есть виртуальная машина на Azure, которая будет слушать сообщения через servicebus от Azure. И еще один разработчик должен подключиться к этому сервисному шину для отправки сообщений на мою службу. Для этого нам нужно придумать протокол для этой системы связи. И я думал об использовании WSDL, чтобы сделать сервер чем-то вроде webservice-like, но вместо того, чтобы слушать стандартные HTTP-порты, он будет подключаться к служебной шине и внутри нее тема с подпиской или что-то еще. Я все еще не уверен, что будет лучше.Возможно ли иметь веб-сервис через Azure Servicebus?

Итак, возможно ли это? Кто-нибудь сделал что-то подобное раньше? Есть ли примеры?

ответ

1

Сервисная шина предоставляет модели обмена и обмена сообщениями. Используя темы/очереди, вы по существу отправляете и получаете сообщение от брокера. Таким образом, вы можете использовать API/протоколы, поддерживаемые брокером. В качестве примера вы можете использовать NetMessagingBinding от вашего сервиса/клиента для отправки и получения сообщений через очередь. Здесь нет контракта, кроме того, что вы положили в тело и значения свойств BrokeredMessage. Приложение на обоих концах может декодировать/расшифровывать эту информацию по мере необходимости.

В случае Relayed messaging, однако, вы выполняете сквозное соединение между клиентом и сервисом с Service Bus, служащим промежуточным прокси-сервером для аутентификации, прозрачности местоположения и даже балансировки нагрузки. Таким образом, здесь вы можете использовать от RelayBindings, таких как NetTcpRelayBinding или webHttpRelayBinding, но тогда как клиент, так и служба должны быть доступны одновременно. Здесь вам нужно, чтобы служба и клиенты использовали один и тот же контракт.