Amazon SQS如何在这种情况下工作?

时间:2017-02-04 02:41:50

标签: java message-queue amazon-sqs

Consumer正在侦听队列(FIFO或标准队列),Producer在队列上生成消息。

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

  2. Producer在队列中生成消息。由于网络问题,消费者变得离线。一段时间后,他/她回到网上。将队列传递消息 他上网时对消费者有用吗?我认为是,因为队列没有收到消费者的确认。

1 个答案:

答案 0 :(得分:1)

我相信你是从rabbitmq的角度问的。有一些区别。平方没有ack。消息不会自动删除,即使消费者接受消息,它们也会保留在队列中。消费者在处理完消息后,需要明确删除这些消息。

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

在您的方案中,一旦消费者完成处理消息,它就可以发出两个请求:一个用于将消息排入另一个队列,另一个用于从原始队列中删除消息。

如果您在同一个队列中有多个消费者列表,则会发生消息不可见期的概念。如果你有这样的设置,请在评论中询问,我将更新更多信息。

希望它有所帮助。