我想使用 FIFO SQS 进行消息传输 - 在研究时我发现了以下两个语句:
- 每个队列的消息数:Amazon SQS 队列可以存储的消息数量没有限制。
- 每个队列的消息数(正在发送):对于 FIFO 队列,最多可以有 20,000 条正在发送的消息(消费者从队列中收到但尚未从队列中删除的消息)。为避免达到配额,您应在处理完消息后将其从队列中删除。
对我来说很清楚,当我收到消息但尚未删除它们时,消息数量限制为 20k 条(因此它们处于不可见超时状态)。
隐形超时和接收令牌过期后会发生什么?已收到但未删除的消息是否也计入此限制 - 即使经过很长一段时间?
答案1
因此我自己尝试了一下并得出以下结论:
- FIFO 队列可以容纳无限量的消息
- 在偷看 20,000 条消息(现在被视为“正在发送”)后,您在尝试偷看其他可用消息时不会再收到任何消息
- 在飞行中消息的接收句柄过期后,它将从“飞行中”配额中扣除,并再次被视为“可用”
- 当达到 20k 的配额时,服务查看消息不会收到任何错误消息,而是收到一个空的消息列表。