幕后故事:
几个月前(当我不熟悉Azure Queues和SDK工具时)我在Google上搜索了“我该怎么做”和“我该如何做” ......今天是我现在的位置:
QueueClient
(Microsoft.ServiceBus.Messaging-Microsoft.ServiceBus.dll)从Azure队列接收消息。MessageSender
(来自相同的 namespace 和dll)将消息发送到Azure队列。Dictionary<string, QueueClient>
和Dictionary<string, MessageSender>
-这比应该的要复杂。现在,我对Azure SDK更加熟悉了……我意识到
QueueClient
类既可以发送也可以接收 ...那么为什么当第一个对象可以同时执行两个对象时,我为什么要跟踪两个对象呢?问题:
是否有任何理由使用
MessageSender
类而不是QueueClient
类?如果需要发送和接收,是否应该只使用
QueueClient
类? 最佳答案
我们已经公开了这两个不同的对象,以支持对称性和易用性。如您所知,我们有Topics/Subscriptions和Queues。如果您仅使用队列,则可以创建一个QueueClient并完成所有需要的操作。但是说您以后想转到主题/订阅的发布-订阅模型。针对通用MessageSender和MessageReciever进行编程将使您能够更改基础拓扑,而不必修改任何代码(只需修改address urls/names)。因此,您可以编写可在“队列”以及“主题/订阅”方案中使用的代码。