使用队列而不是主题和订阅有什么意义吗?

Is there a point in using Queues instead of Topics and Subscriptions?

我是 Azure 服务总线的新手,我正在研究它是否可以替代我们的 RabbitMQ 基础结构。

无论如何,我想知道使用队列是否有意义?如果主题和订阅提供相同的功能 + 提供独立于多个来源消费的灵活性。

例如,如果现在我的设置只有一个消费者组(可能是多个消费者,但都共享相同的消息队列),我可以使用具有单个订阅的主题。

队列有什么意义?它是否对主题和订阅提供某种优化?

与订阅订阅的主题不同,队列不必经过过滤。附件大吞吐量这可以转化为一些性能优势。此外,对于接收方是单个处理器且目的地已知的场景,将消息发送到队列而不是 发布 到主题是更简单的语义。 NServiceBus 和 MassTransit 等框架根据命令或事件的时间区分和优化消息发送,相应地使用队列或topics/events。

使用主题而不是队列的主要优点是我们可以在一个服务主题中创建多个主题订阅。因此,发送到主题的消息将发送到所有主题订阅,当有多个侦听器收听来自单个源的消息时,这将非常重要。

Another main advantage is that we can create topic subscription rules or filters for each topic subscription to filter the messages received by that topic subscription. All the topic subscriptions will have default topic subscription rule which allows all the messages sent to that topic, to be received by that topic subscription.