yel*_*gel 6 fifo amazon-sqs amazon-web-services
目前我们想要拉下整个 FIFO 队列,并处理内容,如果有任何问题,将消息释放回队列。
问题是,目前 AWS 只给我们 10 条消息,在我们删除或释放前 10 条消息之前,不会再给我们 10 条消息(这是您在 SQS 中获取批量消息的方式,多个 10 条最大消息请求)。
不过,我们需要获得超过 10 个。这不可能吗?我们知道我们可以将 group_id 设置为一个随机字符串,这允许处理更多,但顺序不能保证,这违背了 FIFO 的目的。
我设法重现了您的结果——我可以检索 10 条消息,但是再次运行相同的命令不会返回另一组消息。
相关文件似乎是:
虽然具有特定信息的消息
MessageGroupId
是不可见的,但MessageGroupId
在可见性超时到期之前,不会返回更多属于相同的消息。您仍然可以接收与另一个人的消息,MessageGroupId
只要它也可见。
我怀疑(只是一个理论!)这是为了保留消息的顺序......如果客户端要求一组消息并且它们仍在处理中,则消息可能会返回到队列中。因此,在原始消息被删除或超过其可见性超时之前,不会提供更多消息。
这只是 FIFO 队列的一种行为。
似乎您需要接收和删除所有消息才能访问它们。我会建议:
如果您经常需要 Amazon SQS 提供的更多功能,您可以考虑使用Amazon MQ – 适用于 ActiveMQ 的托管消息代理服务。它具有更多功能(但相应地不那么“简单”)。
归档时间: |
|
查看次数: |
4097 次 |
最近记录: |