亚马逊SQS在这种情况下是如何工作的



消费者正在监听队列(FIFO或标准队列),生产者在队列上生成消息。

  1. 一旦收到消费者的确认,Amazon SQS队列是否会自动从队列中删除消息?有没有一种方法/配置可以让队列保留消息而不是删除它,并确保它不会再次传递。

  2. 生产者在队列上生成消息。消费者因网络问题而离线。过了一段时间,他/她又回到了网上。将排队传递消息当消费者上网时?我认为是的,因为队列并没有收到来自消费者的确认。

我相信你是从拉比的角度提出问题的。有一些不同。sqs中没有ack。消息不会自动删除,即使消费者接受了消息,它们也会留在队列中。消费者在处理完消息后,需要明确删除这些消息。

Sqs并不关心消费者的在线-离线状态。消费者定期轮询sqs以获取新商品。如果有可用的消息,就会分发出去。一旦使用者完成,它就会调用sqs来删除该消息。然后再次轮询新消息。

在您的场景中,一旦消费者处理完消息,它就可以发出两个请求:一个是将消息排入不同的队列,另一个是从原始队列中删除消息。

如果有多个消费者在同一个队列中列出,那么消息不可见期的概念就会发挥作用。如果你有这样的设置,请在评论中询问,我会更新更多信息。

希望能有所帮助。

最新更新