0

我正在使用 kafka 消费者和消息作为事件数据调用五个 lambda。这些 lambdas 在 dynamo db 中同时读取、更新、写入和删除数据。因此,数据不一致。一个 lambda 从 db 获取数据然后更新数据,但同时另一个 lambda 获取旧数据并更新导致数据不一致的数据。有没有办法解决这个问题?

4

2 回答 2

1

DynamoDB 支持条件更新,请参阅公告Java 示例

如果您使用 Java,请查看Optimistic Locking选项。

于 2019-12-20T13:28:44.480 回答
0

您可以使用强一致性读取来确保读取始终反映读取之前发生的所有成功写入。

除非您另行指定,否则 DynamoDB 使用最终一致性读取。读取操作(例如 GetItem、Query 和 Scan)提供了 ConsistentRead 参数。如果将此参数设置为 true,则 DynamoDB 在操作期间使用强一致性读取。

有关完整的讨论,请参阅https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html,包括一些需要考虑的缺点。

另请参阅Amazon - DynamoDB 强一致读取,它们是最新的吗?如何?

于 2019-12-20T16:24:22.003 回答