为什么使用 QueueClient 与 MessageFactory?
Why use a QueueClient vs MessageFactory?
在 Azure 服务总线中,您可以使用 QueueClient
和 MessageFactory
发送代理消息。我想知道你为什么要使用一个而不是另一个。
Azure 服务总线为 send/receive 消息提供了不同的方式。
- 您可以使用
QueueClient
发送和接收消息 to/from 队列。
- 您可以使用
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
,如果您想从队列移动到主题,则必须更改代码。
所以我的建议是,当您必须向 Azure ServiceBus 队列 topic/subscription 发送 send/receive 消息 from/to 时,始终使用 MessageReceiver
/MessageSender
。
注意:这不适用于具有不同实现的 Eventhub。
在 Azure 服务总线中,您可以使用 QueueClient
和 MessageFactory
发送代理消息。我想知道你为什么要使用一个而不是另一个。
Azure 服务总线为 send/receive 消息提供了不同的方式。
- 您可以使用
QueueClient
发送和接收消息 to/from 队列。 - 您可以使用
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
,如果您想从队列移动到主题,则必须更改代码。
所以我的建议是,当您必须向 Azure ServiceBus 队列 topic/subscription 发送 send/receive 消息 from/to 时,始终使用 MessageReceiver
/MessageSender
。
注意:这不适用于具有不同实现的 Eventhub。