0

我对队列和主题是否默认支持消息排序传递感到困惑。

它在下面说队列支持FIFO消息传递。我认为这与消息订购传递相同。

队列向一个或多个竞争消费者提供先进先出 (FIFO) 消息传递。 https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-queues-topics-subscriptions

但是,为什么需要启用会话,如下面的屏幕截图所示。

要在服务总线中实现 FIFO 保证,请使用 Sessions。

https://docs.microsoft.com/en-us/azure/service-bus-messaging/message-sessions

在此处输入图像描述

主题和订阅

主题和订阅的 FIFO 怎么样?

更新

我的问题是:

队列和主题/订阅是否默认支持消息排序传递 (FIFO),而不使用 Sessons?如果我没记错的话,像 RabbitMQ 这样的其他代理默认支持这个。

我是否正确,如果我想要队列中的所有消息都使用 FIFO,即使我不需要有序消息的会话,我需要启用会话?

例如:

队列中带有排序的所有消息:我需要在不启用会话的情况下保留所有消息排序:

1, 2, 3, 4, ... n

有序消息的会话:我不想启用会话

session 1: 1, 2, 3, n

session 2: 1, 2, 3, n

session n: 1, 2, 3, n

即使我不想要消息会话,启用会话只是为了保留消息排序的要求是否繁琐?

4

1 回答 1

2

可以在支持接收的实体上启用会话。那将是队列和订阅。主题只能用于发送。

更新

我需要在不启用会话的情况下保留所有消息顺序

这行不通。有序消息需要会话以确保执行顺序。如果没有会话,消息很容易出现故障。

于 2019-03-31T21:07:49.653 回答