2017-04-19 64 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