首页 > 解决方案 > 消费者有没有办法确保没有其他消费者在 SQS 中处理重复的消息?

问题描述

我有一个多个生产者向其发送消息的 SQS 队列。我不保留任何关于最近是否已将消息发送到 SQS 队列的状态,因此我完全依赖 SQS 的重复数据删除机制来确保队列中不存在重复消息。

然而,我的问题是,我的生产者偶尔会在 5 分钟重复数据删除间隔之外发送重复消息。在检查了我的日志后,我遇到的重复消息问题似乎是两个生产者在大约 10 分钟内相互发送了一条消息。当许多客户同时阅读并处理消息时,两个消费者可以同时处理“相同”的消息(即具有相同正文的消息)。

实际从 SQS 队列中读取消息时,有什么方法可以缓解这种情况?如果有办法确保在五分钟内不会读取具有相同重复数据删除 ID 的消息或类似的内容,我会很高兴,这样我就可以确保读取第一条重复消息的消费者有时间处理它.

如果仍然不清楚我想在这里实现什么,请提前道歉,所以请询问是否有不清楚的地方 - 很难以有意义的方式解释它:)

标签: amazon-sqsfifo

解决方案


推荐阅读