AWS SQS:可见性超时到期后,FIFO 队列中消息的顺序是什么?

AWS SQS: Which is the order of message in a FIFO queue after visibility-timeout expires?

在 AWS SQS FIFO 的队列中;当一条已读消息的可见性超时时,消息将在队列中的哪个位置?

例如:

消息的新顺序是什么?

顺序保持不变:[A, B, C, D]

事实上,在处理完消息 A 之前,无法从队列 中获取具有相同 Message Group ID 的另一条消息。这样可以确保保留顺序。

允许并行处理某些消息的地方,您可以指定不同的消息组 ID。

[A, B, C, D] 当且仅当所有消息共享相同的消息组 ID 时才是正确的。如果他们不这样做,可见性超时到期会将消息发送到队列的后面。 ([B, C, D, A]).

同时处理来自 SQS FIFO 队列的多条消息的唯一方法是使用多个消息组 ID,不幸的是,这会破坏最旧消息的优先顺序。