我使用kafka消费者和消息作为事件数据来调用五个lambda。这些lambda同时读取、更新、写入和删除dynamo db中的数据。因此数据不一致。一个lambda从数据库中获取数据,然后更新数据,但同时另一个lambda获取较旧的数据并更新数据,从而导致数据不一致。有什么方法可以处理这个问题吗?
j9per5c41#
您可以使用强一致性读取来确保读取总是反映在读取之前发生的所有成功写入。dynamodb使用最终一致的读取,除非您另外指定。读取操作(如getitem、query和scan)提供了一个consistentread参数。如果将此参数设置为true,dynamodb将在操作期间使用强一致性读取。看到了吗https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/howitworks.readconsistency.html 进行全面讨论,包括一些需要考虑的缺点。也看到亚马逊-dynamodb的强一致性阅读,它们是最新的吗?
ukqbszuj2#
dynamodb支持条件更新,请参阅公告和java示例。如果您使用java,请查看乐观锁定选项。
2条答案
按热度按时间j9per5c41#
您可以使用强一致性读取来确保读取总是反映在读取之前发生的所有成功写入。
dynamodb使用最终一致的读取,除非您另外指定。读取操作(如getitem、query和scan)提供了一个consistentread参数。如果将此参数设置为true,dynamodb将在操作期间使用强一致性读取。
看到了吗https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/howitworks.readconsistency.html 进行全面讨论,包括一些需要考虑的缺点。
也看到亚马逊-dynamodb的强一致性阅读,它们是最新的吗?
ukqbszuj2#
dynamodb支持条件更新,请参阅公告和java示例。
如果您使用java,请查看乐观锁定选项。