amazon-web-services - 确保来自 SQS 的消息在给定时间被单个消费者消费
问题描述
我已经配置了一个包含一个发布者和三个消费者的 SQS FIFO 队列。我想按顺序处理发布到队列的所有消息。队列中发布的所有消息都属于同一个组。
我浏览了 SQS 文档并了解到,通过配置合适的可见性超时,我们可以确保在任何给定时间只有一个消费者处理消息。在可见性超时期限内,消息不会移交给任何其他消费者。
我的问题是,当一个消费者正在处理一条消息时,队列中的其他消息是否有可能被另一个消费者消费?
如果是,有什么方法可以确保在给定时间只有一个消费者正在消费队列中的消息?
解决方案
队列中的其他消息被另一个消费者消费了?
如果它们在不同的消息组中,那么其他消费者可以读取不同的消息。但是,如果 FIFO 队列中的所有消息都属于同一个组,则它们的顺序和处理由 AWS 保证:
属于同一消息组的消息始终按照相对于消息组的严格顺序逐一处理(但是,属于不同消息组的消息可能会乱序处理)。
推荐阅读
- reactjs - 为什么我不断收到 Syntax Error: JSON parse 即使我的代码与另一个 API 一起使用?
- python - Discord 机器人升级功能不起作用
- python - 如何调用特定对象的方法并仅影响作为pygame中字典键值的对象?
- next.js - getStaticProps 页面末尾的 _NEXT_DATA_ json 对象对 SEO 的影响
- entity-framework - 将项目添加到多对多关系.net核心时出现问题
- python - 如何改进 pytesseract 参数以正常工作
- javascript - 为什么 CircleType 建立的圈子需要两次重新加载才能工作?
- ios - 如何使用可编码映射 json 数据并填充到表视图?
- c# - 在一个环境中显示连接字符串,但在另一个环境中隐藏它
- c# - 在 C# DateTimePicker 中覆盖 onPaint - 我还需要做其他事情吗?