2015-11-12 68 views
0

我有兩個項目需要更新來自同一個表。每個項目代表一個用戶,我需要確保一個值寫入他們或根本不寫。我已經通過互聯網查找並找到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內執行交易?dynamodb交易寫入

+0

DynamoDB本身只在單個項目級別支持事務(條件寫入)。在修改之前,你可以建立你自己的鎖定個人記錄的方法,但這有點複雜。 – JaredHatfield

+0

@JaredHatfield你會碰巧知道dynamodb事務庫的狀態嗎? (https://java.awsblog.com/post/Tx13H2W58QMAOA7/Performing-Conditional-Writes-Using-the-Amazon-DynamoDB-Transaction-Library)。 – user2924127

回答

0

我在生產項目中使用這個庫。 Maven Central中永不存在此庫。 因此,您需要使用mvn命令在本地計算機上構建jar。

  1. 如何設置dynamodb-交易

    混帳克隆https://github.com/awslabs/dynamodb-transactions

    CD dynamodb-交易

    MVN清潔套裝

而且你會發現亞馬遜dynamodb- transactions- [version] .jar in dynamodb-transactions/target folde河

  • 類似的交易功能
  • 在Dynamodb,多項目事務不支持。 只有單項交易可能。
    順便說一句,我用dynamodb事務庫,但它需要巨大的寫入能力(7N + 4)。而且這個項目維護得不好。
    現在我們可以使用Dynamodb Stream。
    我認爲Dynamodb中最好的類似DBMS事務(主事務數據)方法,通過使用Lambda函數的Dynamodb Stream保存單數據和事務數據的數據。
    Dynamodb Stream 100%保證數據。因此,只需少許仔細編碼具有容錯保存數據的Lambda函數部分,上述方法就像「異步事務」一樣工作。 (但如果用戶調用API和返回數據需要彙總交易數據,上述方法不適合)

    從維護良好的系統和aws現代技術的角度來看,我認爲它是更好的方法在Dynamodb中。