DynamoDB最终一致读取与强一致读取

时间:2018-04-26 06:34:13

标签: amazon-web-services amazon-dynamodb

我最近了解了DynamoDB的两种读取模式。但我不知道何时选择什么。任何人都可以解释权衡吗?

2 个答案:

答案 0 :(得分:8)

基本上,如果您需要拥有最新值,请使用完全一致的读取。您将获得保证的当前值。

如果你的应用程序没有可能过时的信息(仅仅几秒或更短时间),那么使用最终一致性读取

完全一致的例子:

  • 银行余额(想知道最新金额)
  • 机车在火车网络上的位置(需要绝对确定以确保安全)
  • 股票交易(需要知道最新价格)

最终一致性读取的用例:

  • Facebook好友的数量(如果在过去的几秒钟内添加了另一个,这有关系吗?)
  • 在过去5分钟内使用特定旋转栅门的乘客数量(如果少数人出局则不重要)
  • 股票研究(如果它在几秒钟之内没有问题)

答案 1 :(得分:0)

除了其他答案之外,这种阅读模式的原因是:

假设您在eu-west-1地区有表User。如果您没有意识到AWS有多个可用区域在后台处理。就像在发生故障等情况下复制数据一样。基本上有表的副本,一旦你插入表,就需要有多个资源需要更新。

但是现在当你想阅读时,你可能有可能在没有意识到的情况下阅读尚未更新的表格。通常需要不到一秒的时间才能更新dynamodb。这就是它被称为eventually consistent的原因。它最终会在很短的时间内保持一致:)

在做决定时知道这个推理有助于我理解和设计我的用例。