首页 > 解决方案 > FIFO Sqs 和 AWS Lambda 中的奇怪行为

问题描述

fifo 队列的 backlog 中有大约 20K 条消息。Lambda 是 fifo 队列的消费者。一个来源是使用组 id - Group1 将消息推送到 FIFO 队列。

lambda 代码抛出了一个可重试的异常,因此将重新处理整个批次。但是现在当我使用不同的消息组 id 即 Group2 运行我的黄瓜测试用例时。按照我的预期,应该并行处理 Group2 消息。但看起来他们正在被处理。

我的理解是否正确,多个组 id 应该由 lambda 并行处理,但看起来它没有发生。

标签: aws-lambdaamazon-sqs

解决方案


对于 FIFO 队列,最多可以有 20,000 条正在进行的消息(消费者从​​队列中接收,但尚未从队列中删除)。如果您达到此配额,Amazon SQS 不会返回任何错误消息。如果您的队列有大量积压的 20,000 条或更多具有相同消息组 ID 的消息,则 FIFO 队列可能无法返回具有不同消息组 ID 但稍后发送到队列的消息,直到您成功使用来自积压的消息


推荐阅读