幕后故事:
几个月前(当我不熟悉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/SubscriptionsQueues。如果您仅使用队列,则可以创建一个QueueClient并完成所有需要的操作。但是说您以后想转到主题/订阅的发布-订阅模型。针对通用MessageSenderMessageReciever进行编程将使您能够更改基础拓扑,而不必修改任何代码(只需修改address urls/names)。因此,您可以编写可在“队列”以及“主题/订阅”方案中使用的代码。

    10-08 07:14