SQS FIFO 队列,每条消息都有自己唯一的消息组 ID,当队列超过 10k 项时,对 0 进行长轮询

问题描述 投票:0回答:0

我有一个 FIFO 队列设置,其中发送的每条消息都带有保证唯一的消息组 ID。

  • DeduplicationScope = perMessageGroup
  • FifoThroughputLimit = perMessageGroupId

几个月来我一直在使用这个队列,直到今天发生了一些非常奇怪的事情。

在某一时刻,我有大约 700 条消息在传输中,大约 15k 条消息在队列中可见。此时,当我使用长轮询发出 recieveMessage 请求且消息返回计数为 10 时,我在几个小时内一直收到零消息返回。然后在几个小时后突然间,消息突然全部畅通无阻并开始处理并在几分钟内完成。当我查看服务日志中的一些示例消息时,我看到它们在早上 8 点左右发送到 SQS 队列,然后直到下午 1 点才收到......但是整个时间 SQS 发送回 0 条消息,即使 SQS 近似可见消息数在 15k 范围内....为什么几个小时都没有返回一条消息。每条消息都使用唯一的 messageGroupId btw.

请注意,对于 700 条飞行消息,我已在应用程序中手动将这些单独消息的可见性时间设置为 17 分钟左右的某个值(这 700 条消息中每条消息的可见性超时,而不是默认的可见性超时)队列),但是这 700 条飞行中的消息不应该有任何理由阻止其余 15k 条消息,因为就像我说的,它们都有唯一的 messageGroupId

我在网上看过,没有看到其他人有这个问题。我很困惑。请帮助

amazon-web-services amazon-sqs fifo
© www.soinside.com 2019 - 2024. All rights reserved.