注意
多区域强一致性(MRSC)目前为预览版,可能会发生变化。
多区域强一致性(MRSC)是一项新的 DynamoDB 全局表功能,现为预览版。为 MRSC 配置的全局表能够在多区域范围内执行强一致性读取。对 MRSC 表执行强一致性读取可确保您始终读取项目的最新版本,而无论您在哪个区域中执行读取。
可以使用多区域强一致性全局表来构建恢复点目标(RPO)为零的应用程序。RPO 为零可确保应用程序始终可以读取最新版本的 DynamoDB 数据,即使应用程序中断导致您将流量转移到其它 AWS 区域也是如此。
仅 全局表版本 2019.11.21(当前版)支持 MRSC 预览版。
全局表的一致性模式
创建全局表时,可以配置其一致性模式。全局表提供以下多区域一致性模式:最终一致性和强一致性(预览版)。
如果您在创建全局表时未指定一致性模式,则全局表默认为多区域最终一致性(MREC)。全局表不能包含配置了不同一致性模式的副本。您无法更改全局表的一致性模式。
多区域最终一致性(MREC)
多区域最终一致性(MREC)是全局表的默认一致性模式。您对 MREC 全局表副本中的项目所做的更改通常会在一秒或更短的时间内复制到所有其它副本。这意味着,如果项目是在读取发生的区域中更新的,则将 ConsistentRead 参数设置为 true
(强一致性读取)时执行的读取操作将始终返回项目的最新版本,但如果项目是在其它区域中更新的,则可能会返回陈旧的数据。
由于在多个区域中同时修改同一项目而发生的冲突,可通过以最后写入者为准 的方法来解决。
与 MRSC 全局表相比,MREC 全局表将具有更低的写入延迟和强一致性读取延迟。
在以下情况下,应使用 MREC 模式:
-
如果从强一致性读取操作返回的陈旧数据已在其它区域中更新,您的应用程序可以容忍这些数据。
-
您优先考虑较低的写入延迟和强一致性读取延迟,而不是多区域读取一致性。
-
您的多区域高可用性策略可以容忍 RPO 大于零。
多区域强一致性(预览版)
注意
多区域强一致性(MRSC)目前为预览版,可能会发生变化。
您对 MRSC 全局表副本中的项目所做的更改,可以通过强一致性读取立即在全局表中的任何其它副本表中读取。这意味着,在 ConsistentRead
参数设置为 true
(强一致性读取)的情况下进行的读取操作将始终返回任何副本表中项目的最新版本。
如果写入操作修改已在另一个区域中正在修改的项目,则该写入操作将失败,并引发 ReplicatedWriteConflictException
。可以重试失败并引发 ReplicatedWriteConflictException
的写入,如果冲突的更新已得到解决,并且没有其它冲突的更新正在进行中,则写入将成功。
与 MREC 全局表相比,MRSC 全局表将具有更高的写入延迟和强一致性读取延迟。
在以下情况下,应使用 MRSC 模式:
-
您需要具有多区域范围的强一致性读取保证。
-
您优先考虑全局读取一致性,而不是较低的写入延迟。
-
您的多区域高可用性策略要求 RPO 为零。
MRSC 预览版的区域可用性
以下 AWS 区域中提供了 MRSC 预览版:
-
美国东部(弗吉尼亚北部)- us-east-1
-
美国东部(俄亥俄)- us-east-2
-
美国西部(俄勒冈)- us-west-2
MRSC 预览版注意事项
当您使用带有 MRSC 的全局表时,以下注意事项适用于此预览版:
工作负载注意事项
-
带有 MRSC 的全局表仅适用于预览版。不应将它们用于生产工作负载。
-
MRSC 表的性能和吞吐量特性可能会在整个预览版期间发生变化。
功能支持
-
预览版仅支持 Amazon 拥有的密钥。
-
预览版不支持 AWS 托管式密钥。
-
预览版不支持 Customer managed keys。
-
基于资源的策略不能用于中断区域间的复制。
-
CloudWatch Contributor Insights 信息仅针对在其中对预览版 MRSC 全局表进行了操作的区域进行报告。
-
预览版 MRSC 全局表不支持生存时间(TTL)。
-
预览版 MRSC 全局表不支持本地二级索引(LSI)。
-
预览版不支持事务 API。
与 MREC 全局表的行为差异
配额
-
AWS 账户最多可以有三个带有 MRSC 的全局表。
-
预置容量模式下的写入吞吐量限制为 10000 个复制的写入容量单位(rWCU)。
-
预置容量模式下的读取吞吐量限制为 10000 个读取容量单位(RCU)。
-
按需容量模式下的写入吞吐量限制为 10000 个复制的写入请求单位(rWRU)。
-
按需容量模式下的读取吞吐量限制为 10000 个读取请求单位(RRU)。