首页 > 解决方案 > 一对多的 Azure 服务总线队列与主题(唯一)

问题描述

我有一个托管在 Azure 上的在线服务,它以异步方式将数据发送到本地客户端。每个客户都由一个唯一的代码标识。

实际上只有一个主题,每个客户端都有一个订阅,该订阅对唯一代码有一个过滤器,作为消息中的参数发送。永远不会向所有客户端广播任何消息。

我觉得这样使用主题是错误的。我想到的另一种选择是为每个客户使用一个专用队列,这是在第一次联系时创建的

这可能是更好的方法吗?

谢谢

标签: azureazureservicebusazure-servicebus-queuesazure-servicebus-topics

解决方案


在我看来,使用Topics and Subscriptions是正确的方法。原因如下:

目前,路由逻辑(哪条消息需要发送到哪个订阅)由 Azure 服务总线根据您配置的规则进行处理。如果您使用队列,路由逻辑将需要进入您的托管服务。在发送每条消息之前,您需要确保队列存在。我认为它会以某种方式增加您的服务级别的复杂性。

此外,主题和订阅将使您能够构建审计跟踪类型的功能(不确定您是否正在寻找这种功能)。您可以创建一个单独的订阅,该订阅具有将所有消息 ( True SQL Rule) 与客户端特定订阅一起传递到该订阅的规则。


推荐阅读