【发布时间】:2020-11-06 12:07:44
【问题描述】:
我认为这更像是一个“架构设计”问题。
我有一个 lambda 生产者,它将把大约 600 条消息作为一个批次放在一个 SQS 队列(有多个生产者)上(所以不是 1 条消息,正文包含大约 600 条消息)。一个消费者 lambda,它将接收单个消息并(大规模)处理它们。我想要做的是在每批完成后运行另一个 lambda。
最初的想法是创建一个“唯一批次号”、一个“总批次号”和一个“批次位置号”,并将其添加到每条消息的消息属性中。然后在消费者 lambda 中检查这些以确定批处理是否完成。
但这是否意味着我需要在批次号上使用 FIFO 队列和分区,并且每个批次只有一个 lambda 消费者。或者我是否在 DynamoDB 中运行某种状态管理(这是一种模式吗?请指导我)。
问候,J
【问题讨论】:
-
如果您有多个(并发?)生产者,您如何知道您何时发送了该批次的最后一条消息?
标签: amazon-web-services architecture amazon-sqs serverless