AWS SQS FIFO队列的批处理设置为1,延迟为1秒。收到的每个项目都与一个MessageGroup相关联。
队列同时接收10个不同消息组的30条消息,每个消息组包含3条消息。。。
一秒钟的延迟是否适用于队列级别,即30条消息需要30秒的传递时间?
还是队列会启动10个消费者,每个消息组一个,在3秒内清空队列?
一秒钟的延迟是否适用于队列级别,即30条消息需要30秒的传递时间?
对于FIFO,延迟应用于队列级别:
FIFO队列不支持每消息延迟,只支持每队列延迟。如果应用程序在每条消息上设置了相同的DelaySeconds参数值,则必须修改应用程序以删除每条消息的延迟,并在整个队列上设置DelaySeconds。
并行工作的comsumer Lambda的数量不需要为10,如下所示:
在SQS FIFO队列中,使用多个MessageGroupId使Lambda能够扩展并使用更高的并发限制处理队列中的更多项目。总并发性等于或小于SQS FIFO队列中唯一MessageGroupID的数量。
因此,您可以拥有比组更少的消费者lambda。但在理想情况下,您将有10个lambda并行工作。以下AWS博客文章解释了它如何与lambda一起工作:
我们正在使用AMAZON SQS FIFO队列来处理我们应用程序的预约服务。一旦消息进入队列,它就会触发Amazon Lambda函数来管理预订过程。因为它是一个FIFO队列,所以我们确保如果有2个人请求相同的插槽,那么这个插槽将给第一个请求者。我的问题是:是否有一种方法(也许是SQS FIFO队列中的设置?)这确保了在前一条消息执行完毕之前,一条消息不会触发Amazon Lambda函数。我只是
我已将FIFO队列作为目标添加到我们的自定义事件总线中。 当eventbridge连接到FIO队列时,需要MessageGroupId属性。 是否可以动态配置该值? 例如:我有一个FIFO队列,我把来自不同用户的事件。每个事件,在细节属性内,有一个属性uuid与用户标识符。我想使用这个属性,而不是e常量值作为MessageGroupId。这样,同一用户的所有事件都将按顺序处理。 谢谢你!
我有一个AWS SQS FIFO队列来处理传入的一系列消息。理想情况下,我的消费者(Lambda)将以一定的节奏检索已排序的消息,并尝试重新处理它们。我的问题是是否应该添加死信队列? 我想按顺序处理SQS上的消息,如果不处理,消息组中的第一条消息似乎会阻止该组中的所有其他消息。 我目前将消息组ID都设置为相同的内容,尽管有些消息并不真正依赖于订单 当前设置{1,A组}{2,A组}{3,A组} 我是
解决方案#3:使用AWS SQS标准队列和AWS ElasticCache(Redis或Memcached)。对于每条消息,“messageID”字段将保存在缓存服务器中,并在以后检查是否重复。存在意味着此消息已被处理。(顺便说一下,“MessageID”在缓存服务器中应该存在多长时间。AWS SQS文档没有提到消息可以重复到多长时间。)
我有50KAWS Lambda实例同时运行,它们都向SQS FIFO队列发送消息。 我想知道每秒可以发送到SQS FIFO队列的最大消息数是多少? 我在AWS文档中找不到这样的信息。
我试图用SQS FIFO队列探索SNS FIFO主题,这就是我刚才尝试的。我创建了SNS FIFO主题和SQS FIFO队列,并将FIFO队列订阅到FIFO主题。根据文档,对于上述设置,每当我们将消息发布到SNS FIFO队列时,它都应该将该消息扇出到SQS队列,但它没有发生。我能够获得PublishResult#getMessageId()表示发布部分正在成功进行,但队列中没有任何消息。由于SN