Dynamo DB的原子操作

时间:2015-11-17 08:41:27

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

我有两个用例:

  1. 我想向s3发送消息并将其存储在dynamodb中的s3链接ocation。
  2. 我想将消息发布到sqs / sns并将详细信息存储在dynamodb中。
  3. 在上述两种情况中,我必须编写两个步骤,这些步骤可以打破进程的原子性质。有没有办法在一个步骤中完成上述任何操作?

    谢谢,
    Anuj

1 个答案:

答案 0 :(得分:0)

这将需要多个(在这种情况下为2个)系统之间的分布式事务。您可以通过编写自己的“事务”并处理它来实现这样的目标。但没有开箱即用的解决方案。

请注意,对于某些AWS服务,您将无法“漫游”您所做的更改。最好的例子是SQS和SNS。因此,对于这种情况,首先写入DynamoDB会更好,而不是检查它是否存在,如果你不相信API响应(但你现在必须知道DynamoDB具有最终的一致性),然后尝试向SQS / SNS发送消息,如果失败则从DynamoDB中删除数据。此外,您将无法验证该消息是否在SQS中(API响应旁边)。

如果您没有任何特殊理由进行此类交易,我只会信任AWS基础架构,因为您正在发送小消息(链接,sqs消息)。

相关问题