与队列相比,只有一个订阅的azure服务总线主题有哪些缺点

问题描述 投票:1回答:3

我目前正在研究Azure Service Bus,与单个订阅的主题相比,我不了解Queue的真正好处。我看到在这两种情况下都可以在监听单个队列(或订阅)时创建不同的应用程序来更快地处理消息。 那么使用天蓝色服务总线队列的真正方便是什么呢?如果主题它可以以相同的方式工作吗?更好的性能?这个更便宜?

azureservicebus azure-servicebus-queues azure-servicebus-topics
3个回答
4
投票

Service Bus Queues通过一个发送者和一个接收者提供消息。其中,Service Bus Topics支持多个接收器。

可以在主题下创建订阅以订阅消息。

主题下的每个订阅都像一个队列。

消息将发送到主题,并根据订阅中配置的过滤器,消息将传递到订阅。

在您的情况下,如果您确定只有一个接收器,您可以使用队列。

如果您认为接收器的数量可能在将来增长,并且您需要在将消息提供给接收器之前对其进行过滤,您可以选择主题。

考虑到性能,队列和主题之间的性能不会有太大差异。但是在主题中,消息将首先通过主题并基于过滤器的评估,消息到达订阅。由于此步骤是额外的,因此主题中可能存在微小的性能缺失。在队列中,消息将直接发送到队列。

定价是根据消息的数量计算的,无论是队列还是主题。您无法在Basic层中的命名空间下创建主题。


1
投票

那么使用天蓝色服务总线队列的真正方便是什么呢?如果主题它可以以相同的方式工作吗?更好的性能?这个更便宜?

以上都不是。性能影响微不足道,特别是如果您的过滤器是TrueFilter(无过滤)。您获得的是您使用普通队列无法实现的拓扑的一些灵活性。例如,可以添加临时窃听来解决您的邮件问题。或者添加对收到的所有邮件的审核。


0
投票

使用队列或主题的决定取决于用例。是pub / sub,然后使用主题和订阅。如果您需要生产者/消费者模式,消费者只需处理一次消息,您就可以使用队列。因此,如果您有一个接收器,则不仅可以使用队列,也可以使用多个接收器,但只有一个接收器才能获取消息,而不是所有连接到队列的接收器。因此,如果您的一个消费者遇到问题以跟上速率消息被发送到队列,您可以添加更多消费者以加快处理速度。

© www.soinside.com 2019 - 2024. All rights reserved.