繁体   English   中英

dynamodb事务写入

[英]dynamodb transaction writes

我有同一表中的两个项目需要更新。 每个项目代表一个用户,我需要确保两者都写入一个值或根本不写入。 我浏览了互联网,发现了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内部执行事务?

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

  1. 如何设置dynamodb交易

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

    cd dynamodb交易

    mvn清洁包装

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

  1. 类似交易功能

在Dynamodb中,不支持多项目交易。 只能进行单项交易。
顺便说一下,我使用了dynamodb-transactions库,但是它需要巨大的写入容量(7N + 4)。 而且它不是维护良好的项目。
现在我们可以使用Dynamodb Stream。
我认为Dynamodb中最好的类似DBMS事务处理(主事务数据)方法是使用单项数据主数据和Dynamodb Stream具有Lambda函数保存的事务数据。
Dynamodb Stream 100%保证数据。 因此,只需很少地用容错的保存数据编写Lambda函数部分的代码,上述方法就可以像“异步事务”那样工作。 (但是,如果用户调用API和返回数据需要汇总交易数据,则上述方法不适用)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM