【问题标题】:Ordered DynamoDB Operations有序的 DynamoDB 操作
【发布时间】:2021-07-19 14:20:30
【问题描述】:

我目前正在构建一个系统,该系统需要接收来自多个来源的一系列 DynamoDB 操作,并按照收到的顺序执行它们。

最初,我正在考虑通过 FIFO SQS 队列发送所有操作,并使用 lambda 函数删除消息,然后在 DynamoDB 中执行它们。然而,这样做的问题是无法保证只有一个函数实例会运行,因此同时运行的两个 lambda 函数可能会乱序执行两个操作。

我目前很困惑,我希望获得有关如何实施此功能的任何指导?

【问题讨论】:

  • 你是说你有多个 lambdas 监听同一个流或队列?
  • 只有一个 lambda,但我需要保证一次只能运行一个实例。
  • 答案是——不要。对于操作序列,您应该使用 Kinesis Streams 之类的东西。

标签: amazon-web-services amazon-dynamodb amazon-sqs amazon-sns


【解决方案1】:

看看DynamoDB Streams。您可以在插入/保存/更新/删除的每个 DDB 操作上触发 lambda。保证您以有序的方式接收单行更新以进行处理。

DynamoDB 流是有关 DynamoDB 表中项目更改的有序信息流。当您在表上启用流时,DynamoDB 会捕获有关对表中数据项的每次修改的信息。

上述解决方案适用于单表操作。从交叉表中,您需要更高级别的解决方案来手动按顺序/正确顺序获取更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-28
    • 2018-01-09
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    相关资源
    最近更新 更多