繁体   English   中英

一对多(唯一)的Azure Service Bus队列与主题

[英]Azure Service Bus Queues vs Topics for one to many(unique)

我在Azure上托管了一个在线服务,该服务异步将数据发送到内部客户端。 每个客户端由唯一的代码标识。

实际上,只有一个主题,每个客户端的订阅都有一个针对唯一代码的过滤器,该订阅作为消息中的参数发送。 没有消息将广播到所有客户端。

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

这是更好的方法吗?

谢谢

不建议为每个客户端创建单独的队列。 这是主题解决的问题。

如果每个客户端都有单独的队列,则需要将消息从服​​务器发送到多个队列。 当客户数量增加时,这将变得乏味。

具有单个主题和多个订阅很容易管理,因为消息将仅从服务器发送到单个主题。

我认为使用Topics and Subscriptions是正确的方法。 原因如下:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM