【问题标题】:What does visibility Timeout mean for AWS SQSAWS SQS 的可见性超时意味着什么
【发布时间】:2015-04-27 02:42:54
【问题描述】:

Amazon SQS 服务的“可见性超时”是什么意思?哪些因素决定了该领域的理想价值?

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

【问题讨论】:

    标签: amazon-web-services amazon-sqs


    【解决方案1】:

    基本上是消费者处理消息所花费的时间。同时,该消息对任何其他消费者都不可用(因为这是一个分布式系统)。尽管时间 priod 是可配置的,但消息的默认可见性超时为 30 秒。最小值为 0 秒。最长为 12 小时。

    https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 这可以被认为是失败消息的“重试”间隔吗?也就是说,如果消费者处理消息失败,在可见性超时过去之前不会重试?
      • @TheUnknownDev 这将是重试之前的最短时间。由于第一次尝试处理消息失败,没有其他消费者会得到该消息再次处理它。
      • 我们可以更改可见性超时,然后使用相同的receiptHandle 从SQS 中删除吗?
      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2018-12-04
        • 2020-06-01
        • 1970-01-01
        • 2017-05-09
        • 2023-03-10
        • 2019-11-07
        • 1970-01-01
        • 1970-01-01
        • 2018-07-05
        相关资源
        最近更新 更多