amazon-sqs - 消费者有没有办法确保没有其他消费者在 SQS 中处理重复的消息?
问题描述
我有一个多个生产者向其发送消息的 SQS 队列。我不保留任何关于最近是否已将消息发送到 SQS 队列的状态,因此我完全依赖 SQS 的重复数据删除机制来确保队列中不存在重复消息。
然而,我的问题是,我的生产者偶尔会在 5 分钟重复数据删除间隔之外发送重复消息。在检查了我的日志后,我遇到的重复消息问题似乎是两个生产者在大约 10 分钟内相互发送了一条消息。当许多客户同时阅读并处理消息时,两个消费者可以同时处理“相同”的消息(即具有相同正文的消息)。
实际从 SQS 队列中读取消息时,有什么方法可以缓解这种情况?如果有办法确保在五分钟内不会读取具有相同重复数据删除 ID 的消息或类似的内容,我会很高兴,这样我就可以确保读取第一条重复消息的消费者有时间处理它.
如果仍然不清楚我想在这里实现什么,请提前道歉,所以请询问是否有不清楚的地方 - 很难以有意义的方式解释它:)
解决方案
推荐阅读
- google-maps - 如何创建具有特定大小的预定义多边形
- c - 为什么gdb8.2在Centos7阿里云上编译出错?
- php - 带有特殊字符的精确正则表达式 preg_replace
- machine-learning - 策略梯度的 ELI5 评分函数和 softmax 策略
- typescript - Ionic 4 使用 Angular 5,来自 Firebase 的数据未在 html 页面中呈现
- ruby - 'bundle update --source my_gem' 更新的不仅仅是指定的 gem
- c# - 在 pythonnet 中导入 .NET 自定义类时出现 ModuleNotFoundError
- r - 扩展循环代码而不是循环代码的快捷方式
- unity3d - Unity 切换状态更改导致 StackOverflow
- batch-file - 如何在批处理脚本中获取文件名?