为什么使用 QueueClient 与 MessageFactory?

Why use a QueueClient vs MessageFactory?

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

Azure 服务总线为 send/receive 消息提供了不同的方式。

  • 您可以使用 QueueClient 发送和接收消息 to/from 队列。
  • 您可以使用 TopicClient 向主题发送消息
  • 并且您可以使用 SubscriptionClient 从订阅中接收消息。

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

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");
    

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

所以我的建议是,当您必须向 Azure ServiceBus 队列 topic/subscription 发送 send/receive 消息 from/to 时,始终使用 MessageReceiver/MessageSender

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