dynamodb事务写道

时间:2015-11-12 03:12:53

标签: java amazon-web-services transactions amazon-dynamodb

我有两个来自同一个表的项目需要更新。每个项目代表一个用户,我需要确保将值写入它们或者根本不写入。我查看了互联网并找到了DynamoDB的事务库(https://java.awsblog.com/post/Tx13H2W58QMAOA7/Performing-Conditional-Writes-Using-the-Amazon-DynamoDB-Transaction-Library),但是当我尝试实现这个库时,它似乎不存在于maven http://search.maven.org/#search%7Cga%7C1%7Caws中。我的猜测是,这可能不再是受支持的库(最近更新差不多一年前了)?有什么方法可以在dynamodb中执行事务吗?

1 个答案:

答案 0 :(得分:0)

我在生产项目中使用这个库。 该库从未存在于Maven Central中。 因此,您需要使用mvn命令在本地计算机中构建jar。

  1. 如何设置dynamodb-transactions

    git clone https://github.com/awslabs/dynamodb-transactions

    cd dynamodb-transactions

    mvn clean package

  2. 你会在dynamodb-transactions / target文件夹中找到amazon-dynamodb-transactions- [version] .jar。

    1. 类似交易功能
    2. 在Dynamodb中,不支持多项目交易。 这可能只是单项交易 顺便说一句,我使用了dynamodb-transactions库,但它需要巨大的写入容量(7N + 4)。而且项目维护得不好 现在我们可以使用Dynamodb Stream 我认为在Dynamodb中最好的类似DBMS事务(主事务数据)方法,通过带有Lambda函数的Dynamodb Stream来保存单项和事务数据的数据。
      Dynamodb Stream 100%保证数据。因此,只需要很少仔细地编写具有容错保存数据的Lambda函数部分,上面的方法就像" asynchronize transaction"工作。 (但如果用户调用API并返回数据需要聚合事务数据,则上述方法不适合)

      从维护良好的系统和现代技术的角度来看,我认为在Dynamodb中更好的方法。