c# - Windows Azure 服务总线队列 - MessageSender 还是 QueueClient?

标签 c# .net azure azure-queues

背景故事:

几个月前(当我刚接触 Azure 队列和 SDK 工具时),我在 Google 上搜索了“我该怎么做”和“我该怎么做”...这就是我今天所处的位置:

  1. 我正在使用QueueClient (Microsoft.ServiceBus.Messaging - Microsoft.ServiceBus.dll)从 Azure 队列接收消息。

  2. 在我的同一个程序中,我还使用 MessageSender (来自相同的命名空间和 dll)将消息发送到 Azure 队列。

  3. 我的程序必须跟踪 Dictionary<string, QueueClient>和一个 Dictionary<string, MessageSender> - 这比应有的更复杂。

现在我对 Azure SDK 更加熟悉了...我意识到 QueueClient类可以发送和接收...那么,当第一个对象可以同时执行这两种操作时,为什么我要跟踪 2 个对象呢?

问题:

有什么理由使用 MessageSender类而不是 QueueClient类?

如果我需要发送和接收,我不应该只使用 QueueClient类?

最佳答案

我们公开了两个不同的对象来支持对称性和易用性。如您所知,我们有Topics/Subscriptions以及Queues 。如果您只是使用队列,那么您可以创建一个 QueueClient 并通过它实现所需的所有操作。但是假设您后来想要转向主题/订阅发布-订阅模型。针对通用编程 MessageSenderMessageReciever将允许您更改底层拓扑,而不必修改任何代码(只需 address urls/names )。因此,您可以编写既可以在队列也可以在主题/订阅场景中工作的代码。

关于c# - Windows Azure 服务总线队列 - MessageSender 还是 QueueClient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9329918/

相关文章:

c# - 使用 C# 的字符串数组的总和

c# - 使用 Roslyn 编译带有空项目的解决方案会报错

c# - 将 Java 代码文档转换为 C#

c# - 将 XSLT 应用于内存中的 XML 并返回内存中的 XML

c# - 通过 Azure 服务总线读取从 WCF 服务返回的流时出现 IOException 和 SocketException

c# - Json.NET 将数组反序列化为属性

.net - 如何将ManagementObjectCollection对象转换为Powershell可读的格式?

azure - 从 AzureDevOps 替换 token 在应用程序设置中设置 JSON key

azure - SQL Azure 在线管理门户 - 是什么导致 'Query Performance' 运行计数重置为零?

azure - Azure 共享计划上的 SSL?