为什么使用QueueClient和MessageFactory?

时间:2016-08-28 00:26:26

标签: azure azureservicebus azure-servicebus-queues

在Azure Service Bus中,您可以使用QueueClientMessageFactory发送代理消息。我想知道你为什么要用一个而不是另一个。

1 个答案:

答案 0 :(得分:15)

Azure Service Bus提供了不同的发送/接收消息的方式。

  • 您可以使用QueueClient向/从队列发送和接收消息。
  • 您可以使用TopicClient向主题发送消息
  • 您可以使用SubscriptionClient接收来自订阅的消息。

使用MessageSenderMessageReceiver创建实体类型不变的发送方和接收方:

var factory = MessagingFactory.CreateFromConnectionString("MyConnectionString");
  • MessageSender可以向主题或队列发送消息:

    var sender = factory.CreateMessageSender("Queue ou topic path");
    
  • A MessageReceiver ca接收来自队列和订阅的消息:

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

如果您需要从队列切换到主题,或者反之亦然,这些抽象可以为您提供更大的灵活性,因为您只需要更改服务总线实体的路径(这可能在您的配置文件中),因此无需更改代码需要。使用QueueClientTopicClientSubscriptionClient,如果您想从队列转移到主题,则必须更改代码。

所以我的建议是,当您必须从/向Azure ServiceBus队列主题/订阅发送/接收消息时,始终使用MessageReceiver / MessageSender

注意:这不适用于具有不同实现的Eventhub。