Azure服务总线:如何保持发件人发送的消息为FIFO

时间:2018-08-02 02:15:40

标签: message-queue azureservicebus fifo

我已经阅读了StackOverflow的一些问题。他们说,我们可以为队列启用会话支持,以保留消息FIFO。有人提到不能保证订购。为了确保消息按顺序处理,我们必须在时间戳处理过程中进行手动处理。

是真的吗?

2 个答案:

答案 0 :(得分:0)

要以FIFO模式发送/接收消息,需要在队列上启用启用“ Require Sessions”,并使用Message Sessions发送/接收消息。时间戳无所谓。重要的是会话。

  • 发送后,设置邮件的SessionId
  • 接收后,要么使用MessageReceiver接收任何会话,要么使用较低级别的API(SessionClient)并指定会话ID来接收特定会话。

一个好的开始是阅读documentation并看看这个sample

答案 1 :(得分:0)

Azure服务总线队列本身遵循FIFO。在某些情况下,消息的处理可能不是顺序的。如果您确定有效载荷的大小是一致的,则可以使用常规队列,该队列将按顺序处理消息(对我有用)。

如果消息之间的有效负载大小将发生变化,则最好使用他的答案中提到的Sean Feldman启用会话的队列。