具有相同组ID的amazon sqs fifo队列中飞行模式的消息如何超过10条?
How can there be more than 10 messages in flight mode in amazon sqs fifo queue with the same group id?
根据 Amazon aws 文档的说明
For FIFO queues, there can be a maximum of 20,000 inflight messages (received from a queue by a consumer, but not yet deleted from the queue). If you reach this quota, Amazon SQS returns no error messages. If your queue has a large backlog of 20,000 or more messages with the same message group ID, FIFO queues might be unable to return the messages that have a different message group ID but were sent to the queue at a later time until you successfully consume the messages from the backlog.
我在这里无法理解的是,如果 fifo 队列不发送下一批 n 条消息(最多 10 条),如果前一批正在跨任何具有相同组 ID 的并行消费者进行。那么在飞行模式下如何最多有 20K 条具有相同组 ID 的消息。据我了解,同一组 ID 在飞行模式下最多可以有 10 条消息。如果那批消息以某种方式未被处理(未确认),则 fifo 队列将在可见性超时结束后重新传送这些消息,并在飞行模式下以相同数量的消息结束。
谁能帮我澄清一下?
不是说可以有 20,000 条消息在传输中具有相同的 GroupId。
- “最多可以有20,000条飞行消息”指的是ALL条消息,不考虑GroupId
- “如果您的队列有 20,000 条或更多具有相同消息组 ID 的消息的大量积压” 指的是未处理消息的积压。 不是指的是飞行消息。
基本上,它是说如果一个特定的 GroupId 正在传输中,并且有 20,000 多条具有相同 GroupId 的消息在队列中等待(非传输中),SQS 可能无法获取任何消息使用不同的 GroupId 是 'behind' 那 20,000 条消息。
根据 Amazon aws 文档的说明
For FIFO queues, there can be a maximum of 20,000 inflight messages (received from a queue by a consumer, but not yet deleted from the queue). If you reach this quota, Amazon SQS returns no error messages. If your queue has a large backlog of 20,000 or more messages with the same message group ID, FIFO queues might be unable to return the messages that have a different message group ID but were sent to the queue at a later time until you successfully consume the messages from the backlog.
我在这里无法理解的是,如果 fifo 队列不发送下一批 n 条消息(最多 10 条),如果前一批正在跨任何具有相同组 ID 的并行消费者进行。那么在飞行模式下如何最多有 20K 条具有相同组 ID 的消息。据我了解,同一组 ID 在飞行模式下最多可以有 10 条消息。如果那批消息以某种方式未被处理(未确认),则 fifo 队列将在可见性超时结束后重新传送这些消息,并在飞行模式下以相同数量的消息结束。
谁能帮我澄清一下?
不是说可以有 20,000 条消息在传输中具有相同的 GroupId。
- “最多可以有20,000条飞行消息”指的是ALL条消息,不考虑GroupId
- “如果您的队列有 20,000 条或更多具有相同消息组 ID 的消息的大量积压” 指的是未处理消息的积压。 不是指的是飞行消息。
基本上,它是说如果一个特定的 GroupId 正在传输中,并且有 20,000 多条具有相同 GroupId 的消息在队列中等待(非传输中),SQS 可能无法获取任何消息使用不同的 GroupId 是 'behind' 那 20,000 条消息。