对于队列和主题默认情况下是否支持消息排序传递感到困惑。
它说,下面队列支持FIFO消息传递。我认为这与邮件订购传递相同。
队列向一个或多个竞争消费者提供先进先出(FIFO)消息传递。 https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-queues-topics-subscriptions
但是,为什么需要启用会话,如下面的屏幕截图所示。
要在服务总线中实现FIFO保证,请使用会话。
https://docs.microsoft.com/en-us/azure/service-bus-messaging/message-sessions
主题和订阅
主题和订阅的FIFO怎么样?
更新
我的问题是:
在不使用Sessons的情况下,默认情况下,队列和主题/订阅是否支持消息排序传递(FIFO)?如果我没记错的话,像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
启用会话仅是为了保留消息排序功能,即使我不希望出现会话时也是如此吗?
答案 0 :(得分:1)
可以在支持接收的实体上启用会话。那就是队列和订阅。主题只能用于发送。
已更新
我需要保留所有消息顺序而不启用会话
这将不起作用。有序消息需要会话以确保强制执行命令。没有会话,消息很容易混乱。