我不太关心事件的顺序,但我希望消息只处理一次。侦听SQS消息的lambda将其存储在DynamoDB中,因此吞吐量非常重要,因为我有多个微服务(作为生产者)向该SQS写入消息,这些消息将由单个微服务读取。
关于只处理一次消息,这是FIFO队列支持的,但据说吞吐量不好。
如果每条消息都有唯一的groupId,FIFO队列的吞吐量是否与标准队列相同?
如果没有,我的下一个选择可能是在存储消息时在DynamoDB中使用“attribute\u not\u exists”。
以下哪项应该更好?
https://aws.amazon.com/sqs/faqs/
为了只处理一次,您需要使用具有反应用程序ID的FIFO队列。
如果您的吞吐量要求低于上述限制,那么您可以使用FIFO队列。
如果不是这样,那么使用DynamoDB作为您的原始计划也是一种替代选择。但是在这里,你必须用这种方法自己管理很多事情,比如删除消息,如果消息正在阅读但尚未完全处理,则进行更新,等等。
FIFO SQS队列与常规SQS队列具有不同的速率限制,无论消息组ID的使用如何
SQS标准队列支持每一API操作(SendMessage、ReceiveMessage或DeleteMessage)每秒几乎无限次的API调用。
FIFO SQS支持每种API方法300 TPS
看看这里的配额文件
此外,AWS有一个新功能,用于更高吞吐量的FIFO SQS队列,这可能会引起您的兴趣
通过每个API调用最多批处理10条消息,您可以使用FIFO队列每秒处理3000条消息
关于确保您不会两次处理相同的消息-您是否查看过FIFO重复数据删除ID?我不确定这是否正是您需要的,但听起来与您的要求非常相似
我使用SQS作为视频编码的队列,并希望确保每个视频只执行一次编码。 SQS工作得很好,因为当消息排队时,它只能由单个线程接收。然而,对于相同的视频/编码,可能会向队列发送多条消息,这意味着对于特定的“编码”队列,消息内容将是相同的。 是否需要消除重复以确保对于特定队列,队列中的消息或从队列接收的消息是唯一的? 我想的一个选择是在消息发送时为每种编码类型创建一个新队列。所以队列可以命名为,它只有一条
在大数据存储中,IOPS和吞吐量之间的关键区别是什么
我有一个测试,它可以做以下几点 我在一个吞吐量控制器中有一个GET请求。对于这个请求,我使用正则表达式提取器获取请求属性的值 如果我在一个吞吐量控制器中有两个请求,我就能够做到这一点。但是,如果我在2个不同的吞吐量控制器中有2个请求,同样的情况就不起作用了。 有人能帮忙吗?
我有一个类女巫负责向客户端发送数据,所有其他类在需要发送数据时都使用这个。让我们称之为“数据ender.class”。 现在客户端要求我们将吞吐量控制在每秒最多50次调用。 我需要在这个类上创建一个algoritm(如果可能的话),以保持当前秒的调用次数,如果它达到50的最大值,保持进程要么睡眠或某事,并继续而不丢失数据。也许我必须实现一个队列或比简单的睡眠更好的东西。我需要建议或遵循的方向。 为
所以我想渲染数组,但它一直在说,警告:列表中的每个孩子都应该有一个唯一的“键”道具,即使它有唯一的键,我的数组包含三个元素,它甚至没有正确渲染第三个数组,按钮没有甚至因为某种原因第三李的工作。 更新:我从firebase获得的数据如下所示: 此代码将选择每个数据的标题 当我将鼠标悬停在“fikka-fikka”上时,“fikka-fikka”的按钮甚至不起作用。在ed sheeran和一个方向上,
总的来说,我认为我对延迟和吞吐量之间的区别有很好的理解。但是,对于Intel Intrinsics,延迟对指令吞吐量的影响我还不清楚,尤其是在顺序(或几乎顺序)使用多个内在调用时。 例如,让我们考虑: 这有11个延迟,在Haswell处理器上的吞吐量为7。如果我在循环中运行这条指令,我会在11个循环后获得每个循环的连续输出吗?由于这需要一次运行11条指令,并且由于我的吞吐量为7,我是否用完了“执行