QueueClient против MessageFactory

в служебной шине Azure можно отправить посредническое сообщение с помощью QueueClient и MessageFactory. Я хотел бы знать, зачем вы хотите использовать один над другим.

1 ответов


служебная Шина Azure предоставляет другой способ отправки / получения сообщений.

  • можно использовать QueueClient для отправки и получения сообщений в/из очереди.
  • можно использовать TopicClient отправить сообщение в тему
  • и вы можете использовать SubscriptionClient для получение сообщений из подписки.

используя MessageSender и MessageReceiver, вы создаете отправителя и получателя, которые являются типа сущности инвариант:

var factory = MessagingFactory.CreateFromConnectionString("MyConnectionString");
  • A MessageSender может отправлять сообщения как в тему, так и в очередь:

    var sender = factory.CreateMessageSender("Queue ou topic path");
    
  • A MessageReceiver ca получать сообщения из очереди и подписки:

    var receiver = factory.CreateMessageReceiver("Queue ou subscription path");
    

тезисы абстракции могут дать вам больше гибкости, если вам нужно переключиться с очереди на тему или наоборот, потому что вам просто нужно изменить путь объекта служебной шины( это может быть в вашем файле конфигурации), так что изменение кода не требуется. Используя QueueClient, TopicClient, SubscriptionClient, вам придется изменить свой код, если вы хотите перейти от очереди к теме.

поэтому мой совет-всегда использовать MessageReceiver/MessageSender когда вам нужно отправить / получить сообщение из/в раздел / подписку очереди Azure ServiceBus.

Примечание: это не относится к Eventhub, который имеет другую реализацию.