Amazon SQS 在这种情况下如何工作?
How Amazon SQS works in this scenario?
消费者正在监听队列(先进先出或标准队列),生产者在队列上生产消息。
Amazon SQS 队列是否会在收到消费者确认后自动从队列中删除消息?是否有 way/configuration 队列保留消息而不是删除消息并确保消息不会再次传送的地方。
生产者在队列中生成消息。消费者因网络问题离线。一段时间后 he/she 恢复在线。将排队传递消息
当消费者上网时?我认为是的,因为队列尚未收到来自消费者的 ACK。
我相信你是从rabbitmq的角度问的。有一些区别。 sqs中没有ack。消息不会自动删除,即使在消费者接受后它们也会留在队列中。消息需要在消费者完成处理后明确删除。
Sqs不关心消费者的线上线下状态。消费者定期轮询 sqs 以获取新项目。如果消息可用,则将其分发。消费者完成后,它会调用 sqs 来删除该消息。然后再次轮询新消息。
在您的场景中,一旦消费者处理完一条消息,它就可以发出两个请求:一个是将消息排入另一个队列,第二个是从原始队列中删除消息。
如果您有多个消费者在同一个队列中列出,那么 message-invisibility-period 的概念就会发挥作用。如果您有这样的设置,请在评论中提问,我会更新更多信息。
希望对您有所帮助。
消费者正在监听队列(先进先出或标准队列),生产者在队列上生产消息。
Amazon SQS 队列是否会在收到消费者确认后自动从队列中删除消息?是否有 way/configuration 队列保留消息而不是删除消息并确保消息不会再次传送的地方。
生产者在队列中生成消息。消费者因网络问题离线。一段时间后 he/she 恢复在线。将排队传递消息 当消费者上网时?我认为是的,因为队列尚未收到来自消费者的 ACK。
我相信你是从rabbitmq的角度问的。有一些区别。 sqs中没有ack。消息不会自动删除,即使在消费者接受后它们也会留在队列中。消息需要在消费者完成处理后明确删除。
Sqs不关心消费者的线上线下状态。消费者定期轮询 sqs 以获取新项目。如果消息可用,则将其分发。消费者完成后,它会调用 sqs 来删除该消息。然后再次轮询新消息。
在您的场景中,一旦消费者处理完一条消息,它就可以发出两个请求:一个是将消息排入另一个队列,第二个是从原始队列中删除消息。
如果您有多个消费者在同一个队列中列出,那么 message-invisibility-period 的概念就会发挥作用。如果您有这样的设置,请在评论中提问,我会更新更多信息。
希望对您有所帮助。