我打算建立一个迷你内容管理系统。检查在DynamoDB上存储内容的可能性,服务是否能够在更新相同内容时访问内容? (更新CMS和发布内容的场景) 或者在这种用例中,CloudSearch将是更好的解决方案,而不是DynamoDB?
提前致谢!
答案 0 :(得分:2)
请考虑您的使用案例,并决定是否需要最终一致阅读或强烈一致的阅读。
最终一致阅读
从DynamoDB表读取数据时,响应可能不会反映最近完成的写入操作的结果。响应可能包括一些陈旧的数据。如果您在短时间后重复读取请求,则响应应返回最新数据。
非常一致的阅读
当您请求强一致性读取时,DynamoDB会返回包含最新数据的响应,反映所有先前写入操作成功的更新。在网络延迟或中断的情况下,可能无法使用强一致性读取。
注意: - 强>
除非另行指定,否则DynamoDB最终会使用一致的读取。读取操作(如GetItem,Query和Scan)提供ConsistentRead参数:如果将此参数设置为true,则DynamoDB将在操作期间使用强一致性读取。
用于事务管理的AWS DynamoDB工具(Java): -
开箱即用,DynamoDB提供了四种ACID属性中的两种: 一致性和耐用性。在单个项目中,您也可以获得 原子性和隔离性,但是当您的应用程序需要涉及时 您失去这些属性的多个项目。有时这很好 足够,但许多应用程序,尤其是分布式应用程 我也会欣赏其中一些原子性和隔离性。 幸运的是,DynamoDB提供了工具(特别乐观 并发控制)使应用程序可以实现这些 属性和完整的ACID交易。
如果您使用Java或AWS SDK Java for DynamoDB,则可以使用此工具。我不确定类似工具是否适用于其他语言。
此库提供的其中一项功能是Isolated Reads
。
隔离读取:对多个项目的读取操作不会受到其他事务的干扰。