2017-04-19 42 views
1

我打算構建一個迷你內容管理系統。檢查將內容存儲在DynamoDB上的可能性,服務是否能夠在更新相同內容的同時訪問內容? (在CMS上更新內容和發佈的方案) 或者在這種使用情況下,CloudSearch將成爲更好的解決方案,而不是DynamoDB?在AWS上更新相同數據時訪問數據DynamoDB

在此先感謝!

回答

1

請仔細考慮一下您的使用案例,並決定是否需要最終一致性讀取或強烈一致性讀取

Read Consistency

最終一致讀取

當你閱讀從DynamoDB表中的數據,響應可能不會反映最近完成的寫入操作的結果。響應可能包含一些陳舊的數據。如果短時間後重復讀取請求,則響應應返回最新數據。

強一致性讀取

當你請求一個強烈一致的讀取,DynamoDB返回與最先進的最新數據的響應,反映的是成功之前所有的寫操作的更新。在網絡延遲或中斷的情況下,可能無法獲得高度一致的讀取。

注: -

DynamoDB使用最終一致性讀取,除非另行指定。讀操作(如GetItem,Query和Scan)提供ConsistentRead參數:如果將此參數設置爲true,則DynamoDB將在操作期間使用強一致的讀取。

AWS DynamoDB工具(Java)的事務管理: -

開箱,DynamoDB提供了兩個四個ACID屬性: 一致性和耐久性。在單個項目中,您還可以獲得原子性和隔離性,但是當您的應用程序需要涉及多個項目時,您將失去這些屬性。有時候這就足夠了,但許多應用程序,特別是分佈式應用程序, 也會欣賞一些原子性和隔離性。 幸運的是,DynamoDB提供了這些工具(特別是樂觀的 併發控制),以便應用程序可以實現這些 屬性並具有完整的ACID事務。

如果您對DynamoDB使用Java或AWS SDK Java,則可以使用此工具。我不確定類似的工具是否適用於其他語言。

此庫的其中一個功能是Isolated Reads

隔離讀取:對多個項目的閱讀操作不會受到其他交易的干擾。

Dynamodb transaction library for Java

Transaction design