amazon-web-services - 我应该将死信队列和/或消息组 ID 添加到我的 AWS SQS FIFO 队列吗?
问题描述
我有一个 AWS SQS FIFO 队列来处理传入的消息序列。理想情况下,我的消费者(一个 Lambda)将按节奏检索有序消息并尝试重新处理它们。我的问题是我是否应该添加死信队列?
- 我想按顺序处理 SQS 上的消息,如果未处理,消息组中的第一条消息似乎会阻塞该组中的所有其他消息。
- 我目前将消息组 ID 都设置为相同的东西,尽管有些消息并不真正依赖于订单
当前设置{ 1st, group A } { 2nd, group A } { 3rd, group A }
我是否应该设置消息组 ID,以便{ 1st, group A } { 2nd, group A } { 3rd, group B }
即使第 1 条消息无法处理,也可以处理第 3 条消息?
我是否应该进一步设置死信队列,以便有另一个队列搁置在几次尝试后无法正确处理的消息,这样它就不会占用我的飞行消息限制?
解决方案
MessageGroupID
您应该为必须严格按照彼此相对顺序处理的任何消息分配相同的值。
如果您有不依赖于其他消息的消息,那么它们应该有不同的MessageGroupID
.
我想举的例子是发送 GPS 坐标的公共汽车车队。需要处理特定公共汽车的所有位置以便在地图上正确显示它,但来自不同公共汽车的消息可以按任何顺序处理。因此,每辆公共汽车都应该有自己的MessageGroupID
.
推荐阅读
- sql - 确定三角形的类型
- python - Python:如何删除字典中的符号?
- java - 在 MacOS 中使用 Java 程序执行 mysqldump
- spring - Tomcat 服务未正确重启
- java - 引起:java.lang.NoClassDefFoundError: com/amazonaws/auth/BasicAWSCredentials
- wordpress - 如何在wordpress中将html保留为html?
- reactjs - onClick 从 Header 组件调用其他组件的函数并渲染 Reactjs
- c++ - C ++:递归地将向量插入匿名向量
- scala - scala 中的 foreach() 返回一个 Seq。如何到达物品?
- java - 为什么在使用哈希图获取超时错误查找时接受哈希集解决方案 - 在具有差异 K 的数组中查找对?