异地复制概述

对于应用程序开发人员和 IT 工程师来说,一个共同目标是构建和运行可复原的应用程序。 复原能力是应用程序对故障做出反应并仍然保持正常运行的能力。 若要对云中的区域故障实现复原能力,第一步是构建冗余,避免单一故障点。 可以通过异地复制实现这种冗余。

应用程序配置异地复制功能允许将配置存储随意复制到所选区域。 每个新副本将位于不同的区域中,并为应用程序创建新终结点以向其发送请求。 配置存储的原始终结点称为“原点”。 除无法删除原点外,其行为与其他任何副本类似。

可以在任何副本中更改或更新键值。 在达成最终一致性模型之后,这些更改将与所有其他副本同步。

复制配置存储可带来以下优势:

  • 添加了 Azure 中断的复原能力:发生区域性服务中断时,副本会单独受到影响。 如果一个区域发生中断,位于不受影响区域的所有副本仍可访问并将持续进行同步。 缓解服务中断后,所有受影响的副本都将同步到最新状态。 请注意,异地复制仅通过应用程序配置的配置提供程序提供自动故障转移功能。 否则,还可以在应用程序的配置中生成自己的自定义故障转移机制,以在不同副本终结点之间切换,以缓解 Azure 服务中断的影响。
  • 重新分发请求限制:可以对应用程序使用的副本终结点的代码进行自定义,以便分发请求负载,避免请求限制耗尽。 例如,如果应用程序在多个区域中运行,并且只向一个区域发送请求,则可能耗尽应用程序配置请求限制。 可以通过在应用程序运行的区域创建副本来帮助重新分发此负载。 每个副本都有独立的请求限制,大小等于原点的请求限制。 耗尽一个副本中的请求限制不会影响另一个副本中的请求限制。
  • 区域隔离:如果应用程序将请求发送到距其最近的副本,访问多个区域可以改进应用程序和配置存储之间的延迟,从而导致更快的请求响应和更好的性能。 通过指定副本访问,还可以根据偏好限制不同区域之间的数据存储和流向。

若要在存储中启用此功能,请参阅如何启用异地复制文档

示例用例

开发人员团队正在构建一个由多个应用程序组成的系统,目前他们在“中国北部 3”区域中有一个 Azure 应用配置存储。 随着其系统的使用量快速增长,他们希望在“中国东部 2”和“中国北部 3”扩大规模并满足客户需求。 他们的所有应用程序目前都使用“中国北部 3”配置存储,创建了单一故障点。 如果“中国北部 3”发生区域性服务中断,并且他们没有其他故障转移机制或默认行为,则其用户将无法使用他们的系统。 此外,从全局来看,所有应用程序当前受一个配置存储的请求限制。 随着团队扩展到更多区域,这种限制是不可持续的。

此团队将受益于异地复制。 他们可以在应用程序运行的每个区域中创建其配置存储的副本。 然后,其应用程序可以将请求发送到同一区域中的副本,而不是所有应用程序向“中国北部 3”发送请求。 这将带来两个好处:改进请求延迟,并实现更好的负载分发。 具有良好的分发请求负载有助于避免请求配额耗尽。 此外,通过多个副本,团队可以将应用程序配置为在发生区域性服务中断时进行故障转移。 例如,团队可以将在“中国东部 2”运行的应用程序配置为从该区域拉取配置,但如果“中国东部 2”遇到中断,则回退到“中国北部 3”。 即使给定区域中应用程序配置不可用,团队的系统也不受影响。

注意事项

  • 异地复制在免费层中不可用。
  • 每个副本都有限制,如应用程序配置定价页中所述。 这些限制按副本进行隔离。
  • Azure 应用程序配置还支持 Azure 可用性区域在 Azure 区域内创建可复原且高度可用的存储。 如果副本的区域具有可用性区域支持,则副本会自动包含可用性区域支持。 将区域内用于冗余的可用性区域和跨多个区域的异地复制结合使用,可提升配置存储的可用性和性能。

成本和计费

创建的每个副本都将增加额外的费用。 有关详细信息,请参考应用程序配置定价页。 例如,如果原点是标准层配置存储,并且具有五个副本,则会按照六个标准层配置存储对系统收取费用,但每个副本的独立配额和请求数都包含在此费用中。

监视

为了提供有关异地复制功能特征的见解,Azure 应用程序配置提供了名为“复制延迟”的指标。 复制延迟指标用于描述数据从一个区域复制到另一个区域所需的时间。

有关复制延迟指标和其他应用程序配置指标的详细信息,请参阅监视应用程序配置数据参考

后续步骤

复原能力和灾难恢复