【发布时间】:2021-10-04 15:25:36
【问题描述】:
我有一个任务生成器来生成任务消息到 SQS 队列和一堆工人来轮询 SQS 队列来处理任务。在这种情况下,让任务生成器先将消息发布到 SNS 主题,然后 SQS 队列订阅 SNS 主题有什么好处吗?我假设直接发布到 SQS 队列就足够了。
【问题讨论】:
标签: amazon-web-services amazon-sqs amazon-sns
我有一个任务生成器来生成任务消息到 SQS 队列和一堆工人来轮询 SQS 队列来处理任务。在这种情况下,让任务生成器先将消息发布到 SNS 主题,然后 SQS 队列订阅 SNS 主题有什么好处吗?我假设直接发布到 SQS 队列就足够了。
【问题讨论】:
标签: amazon-web-services amazon-sqs amazon-sns
假设您不需要将消息散播给不同类型的工作人员,并且您的工作人员正在做同样的工作,那么您不需要。
每个工作人员可以接收和处理一条消息。
需要注意的一项是消息在 SQS 上再次可见之前的超时。即未正确配置超时可能会导致另一个工作人员处理相同的消息。
当消费者接收并处理来自队列的消息时, 消息保留在队列中。 Amazon SQS 不会自动删除 消息。因为 Amazon SQS 是一个分布式系统,所以没有 保证消费者实际收到消息(对于 例如,由于连接问题,或由于 消费者应用程序)。因此,消费者必须从 接收并处理后的队列。可见性超时
收到消息后,它立即保留在队列中。到 防止其他消费者再次处理消息,Amazon SQS 设置可见性超时,在此期间 Amazon SQS 阻止其他消费者接收和处理消息。 消息的默认可见性超时为 30 秒。这 最小值为 0 秒。最长为 12 小时。有关信息 使用控制台为队列配置可见性超时
【讨论】: