在Azure Service Bus中,您可以使用QueueClient
和MessageFactory
发送代理消息。我想知道你为什么要用一个而不是另一个。
答案 0 :(得分:15)
Azure Service Bus提供了不同的发送/接收消息的方式。
QueueClient
向/从队列发送和接收消息。TopicClient
向主题发送消息SubscriptionClient
接收来自订阅的消息。使用MessageSender
和MessageReceiver
创建实体类型不变的发送方和接收方:
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");
如果您需要从队列切换到主题,或者反之亦然,这些抽象可以为您提供更大的灵活性,因为您只需要更改服务总线实体的路径(这可能在您的配置文件中),因此无需更改代码需要。使用QueueClient
,TopicClient
,SubscriptionClient
,如果您想从队列转移到主题,则必须更改代码。
所以我的建议是,当您必须从/向Azure ServiceBus队列主题/订阅发送/接收消息时,始终使用MessageReceiver
/ MessageSender
。
注意:这不适用于具有不同实现的Eventhub。