背景故事:
几个月前(当我刚接触 Azure 队列和 SDK 工具时),我在 Google 上搜索了“我该怎么做”和“我该怎么做”...这就是我今天所处的位置:
我正在使用
QueueClient
(Microsoft.ServiceBus.Messaging - Microsoft.ServiceBus.dll)从 Azure 队列接收消息。在我的同一个程序中,我还使用
MessageSender
(来自相同的命名空间和 dll)将消息发送到 Azure 队列。我的程序必须跟踪
Dictionary<string, QueueClient>
和一个Dictionary<string, MessageSender>
- 这比应有的更复杂。
现在我对 Azure SDK 更加熟悉了...我意识到 QueueClient
类可以发送和接收...那么,当第一个对象可以同时执行这两种操作时,为什么我要跟踪 2 个对象呢?
问题:
有什么理由使用 MessageSender
类而不是 QueueClient
类?
如果我需要发送和接收,我不应该只使用 QueueClient
类?
最佳答案
我们公开了两个不同的对象来支持对称性和易用性。如您所知,我们有Topics/Subscriptions以及Queues 。如果您只是使用队列,那么您可以创建一个 QueueClient 并通过它实现所需的所有操作。但是假设您后来想要转向主题/订阅发布-订阅模型。针对通用编程 MessageSender和 MessageReciever将允许您更改底层拓扑,而不必修改任何代码(只需 address urls/names )。因此,您可以编写既可以在队列也可以在主题/订阅场景中工作的代码。
关于c# - Windows Azure 服务总线队列 - MessageSender 还是 QueueClient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9329918/