可见性超时对AWS SQS意味着什么

Eas*_*onk 4 amazon-sqs amazon-web-services

Amazon SQS服务的"Visibility Timeout"是什么意思?哪些因素决定了该领域的理想价值?

我查看了http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/Welcome.html

Roh*_*hit 9

当使用sqs作为排队服务时,当您从队列中读取消息时,它不会自动从队列中删除该消息.因此,当您处理消息时,sqs将等待定义为可见性超时的时间段,然后其他消费者将再次获得相同的消息.

为可见性超时设置的最佳时间值至少是使用者进程的超时值.如果消费者能够成功完成处理,那么它将从队列中删除消息,否则如果消息超时则该消息重新出现在队列中以供其他消费者再次选择.

  • 这可以被视为失败消息的“重试”间隔吗?也就是说,如果消费者处理消息失败,它不会重试,直到可见性超时结束? (2认同)
  • @TheUnknownDev 这将是重试之前的最短时间。由于第一次尝试处理该消息失败,因此其他消费者不会收到该消息来再次处理它。 (2认同)

Nav*_*jay 7

可见性超时是您为队列项目指定的时间段或持续时间,当消费者获取和处理该队列项目时,该时间段或持续时间将对队列和其他消费者隐藏。

主要目的是避免多个消费者(或同一个消费者)重复消费同一物品。

达到此值时要考虑的关键因素是消费者处理单个队列项目所花费的时间和精力。